AOVIS Project Overview
This repository contains the staged account base and storefront foundation for AOVIS. It is intentionally split into rounds so the auth, profile, commerce, and deployment rails can grow without breaking each other.
What this repo covers
- account foundation
- storefront commerce
- payment flow
- order history and checkout confirmation
- a clean path for later device and service workflows
Project docs to read first
AGENTS.md— repo working rules and development boundariesPRD— product definition, milestones, scope, and roadmapCurrent Store Status— current storefront, backend, payment, and API readiness snapshotTange SDK Plan— next round of device SDK and cloud-service integration workMobile Auth Handoff— current auth reality and the recommended login pathCustomer Reference Rule— customer-facing reference ID ruleAdmin Roadmap— next three admin-backend iterations
Current stable milestone
aovis-direct-store-v0.5
VM deployment preparation
The repo is prepared for a traditional Linux VM deployment path.
- Read
VM Deployment Notesbefore setting up staging - Use the standard Next.js production flow:
npm run buildthennpm run start - Keep staging separate from the old prelaunch site and from any future production hostname
- Use staging-first deployment with Stripe test keys before switching to live secrets
The Cloudflare Workers / OpenNext line is archived and no longer the active deployment path.
Tech stack
- Next.js App Router
- TypeScript
- Tailwind CSS
- Auth.js v5 (
next-auth) with Prisma Adapter - Prisma
- PostgreSQL
Round 1 status
Implemented and validated:
- Google sign-in verified on localhost with a real Gmail account and confirmed database writes
/login/account/account/profile/account/devices/account/services- Server-side protection for
/account/** - CustomerProfile read/write
- PostgreSQL + Prisma schema and migration
- Repeatable seed
- Graceful fallback when providers are not configured
Round 2 status
Added in this round:
- Apple provider wiring with graceful fallback
- Email magic link provider wiring with real SMTP support
- Provider status helpers for enabled / not configured UI
- Linked Accounts display in the account center
- More structured device and service summaries
- Seeded demo user, device ownership, subscription, and entitlement rows for better local visibility
- Placeholder account-linking actions and code structure for later expansion
Verified in testing:
- Google OAuth enabled and successfully validated on localhost with a real Gmail account and confirmed database writes
- Email Magic Link verified end to end with SMTP
Not implemented in this round:
- Stripe
- Apple IAP
- Google Play Billing
- Real device binding flow
- Real cloud storage purchase flow
- Real traffic package purchase flow
- Admin backend
- Redis / queue / microservice infrastructure
Current stable milestone details
Current stable version:
AOVIS Direct Store v0.5
Completed:
- Preview fix
- Product page runtime fix
- Brand parity pass
- Stripe test validation
- Shipping / returns / support / contact pages
- Header and footer navigation for launch structure
- Checkout success / cancel page refinement
- Order center polish for account / orders
- Production Stripe configuration documentation
- Production-ready env example structure
- Production readiness pages, navigation, footer, and post-purchase guidance
- Stripe production config readiness
- Live payment readiness documentation
- Launch checklist
- Live payment validation checklist
- Production wording refinement
Payment status:
- Stripe test mode checkout is validated end to end in local development
Historical staging validation record
The earlier staging deployment path was validated end to end:
- Deployment model: traditional VM deployment
- App server: dedicated VM running Next.js full-stack application
- Database server: separate PostgreSQL VM
- Historical staging domain:
store-staging.aovis.app - Stripe mode: test sandbox
- Process manager: PM2
- Reverse proxy: Caddy
Production readiness scope
This round completed:
- Public shipping, returns, support, and contact pages
- Header and footer navigation for launch-ready site structure
- Success and cancel pages that guide the post-purchase handoff
- Order center UX cleanup for account-linked purchases
- Production Stripe preparation notes and configuration guidance
This round did not add:
- Device binding
- Entitlement automation
- App store billing
- Refund tooling
- Coupon or discount engines
- CMS or inventory systems
- Shopify or infrastructure migration
Stripe live payment readiness
The store already supports Stripe Checkout and webhook confirmation. For live payment readiness, verify:
STRIPE_SECRET_KEYis a live keyNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEYis a live publishable keySTRIPE_WEBHOOK_SECRETis the live webhook signing secret from the Stripe dashboardNEXT_PUBLIC_APP_URLpoints to the live domain- Checkout success URL resolves on the live domain
- Checkout cancel URL resolves on the live domain
- Stripe webhook endpoint is reachable from production
- No localhost or test-domain values remain in the live deployment configuration
Formal domain cutover
When moving from staging to the formal public domain, use https://aovis.app as the single site origin for auth, email links, metadata, and payment callbacks.