Deployment
Deploy Starter Free to production and prepare your environment for real users.
OverviewLink to section
Running locally is step one. Deploying early is step two.
Starter Free is intentionally simple to deploy because it does not require a database, auth secrets, Stripe keys, or backend services yet.
The goal is to get a credible SaaS surface online quickly so you can:
- test production builds
- share a live demo
- validate product direction
- prepare the path to real users
Deployment principle
Deploy early. Wire progressively. Do not wait for the backend to exist before validating the product surface.
What you’ll doLink to section
Validate locally
Deploy to Vercel
Verify routes
Mental modelLink to section
Starter Free deploys as a frontend-first product surface. Production wiring comes later.
| Today | Later |
|---|---|
| mocked auth | real session provider |
| mocked billing | Stripe Checkout and Portal |
| static invoices | synced invoice history |
| mock data | database-backed records |
| local UX validation | production user flows |
No secrets required yet
Starter Free can deploy without AUTH_SECRET, DATABASE_URL, STRIPE_SECRET_KEY, or STRIPE_WEBHOOK_SECRET because those systems are intentionally mocked.
StepsLink to section
Validate the production build locallyLink to section
Run the production build before deploying.
pnpm build
pnpm startThen open:
http://localhost:3000If the app builds and starts locally, you have already caught the most common deployment issue.
Push to your repositoryLink to section
Create or connect your GitHub repository.
git remote remove origin
git remote add origin https://github.com/YOUR_USERNAME/YOUR_REPO.git
git push -u origin mainUse your own repository name and organization.
Import on VercelLink to section
On Vercel:
- create a new project
- import your repository
- keep the detected Next.js settings
- deploy
Starter Free does not require environment variables at this stage.
Verify production routesLink to section
After deployment, open the main routes:
/login
/register
/dashboard
/projects
/admin
/billing
/settingsYou should be able to navigate the full mocked SaaS surface.
Future environment variablesLink to section
You do not need these variables for Starter Free, but they become relevant when the product moves toward real users.
AUTH_SECRET=
DATABASE_URL=
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=Auth variables
Authentication variables become necessary once sessions, providers, and protected access are real.
Production checklistLink to section
Before sharing the deployment, confirm that:
pnpm buildsucceeds locally- the deployed app loads without runtime errors
- auth pages are reachable
- dashboard pages are reachable
- project routes work
- admin, billing, and settings pages render
- no required environment variable is missing
- navigation works on desktop and mobile
- mocked billing and auth are clearly understood as non-production wiring
Good deployment signal
If all routes load and the product surface feels coherent, the deployment is ready for demos, validation, and product iteration.
Decision guideLink to section
Deploy Starter Free when:
- you want to share a demo
- you need feedback from users or clients
- you want to validate UX before backend work
- you want a production URL for your product story
- you want to catch build issues early
Move to Starter Pro when:
- real users need accounts
- routes must be protected
- Stripe must charge customers
- billing state must unlock features
- backend data must replace mock data
- deployment must support production operations
Prefer
- deploy early to validate the product surface
- run
pnpm buildbefore pushing - verify core routes after deployment
- add secrets only when systems become real
- upgrade when backend wiring becomes the blocker
Avoid
- waiting for backend wiring before deploying
- skipping production builds locally
- adding unused environment variables too early
- assuming mocked billing is production billing
- sharing a demo before checking all core routes
TroubleshootingLink to section
Next stepsLink to section
Free to deploy. Pro to launch.
Starter Free gives you a live SaaS surface. Starter Pro gives you the production wiring behind it. → Upgrade to Starter Pro