Deployment
From local dev to live in production — pick any Next.js-compatible host.
1. Commit and push your code
git add .
git commit -m "Ready to ship"
git push origin main2. Create a new project on your hosting provider
Import your GitHub repository on whichever platform you prefer. Yousship runs on any host that supports Next.js:
- Vercel — the simplest option. Zero config, automatic preview deployments.
- Netlify — good alternative with similar DX.
- Render — useful if you are already running other services there.
- Railway — great for full-stack projects.
Leave the framework preset as Next.js. The build command (npm run build) and output directory are detected automatically on all of the above platforms.
3. Add environment variables
Your .env.localis never committed to git. Add every key to your host's environment variable settings before the first deploy:
NEXT_PUBLIC_SUPABASE_URL
NEXT_PUBLIC_SUPABASE_ANON_KEY
SUPABASE_SERVICE_ROLE_KEY
STRIPE_SECRET_KEY
STRIPE_WEBHOOK_SECRET
RESEND_API_KEY4. Update webhook endpoints
After your first deploy, update the webhook URLs in each service dashboard to point to your production domain:
- Stripe — Dashboard → Developers → Webhooks → edit the endpoint from
localhost:3000toyourdomain.com. - Lemon Squeezy — Settings → Webhooks → update the URL.
5. Update Supabase redirect URLs
In Supabase → Authentication → URL Configuration, add your production domain so OAuth and magic link redirects work:
https://yourdomain.com/**6. Production checklists
- Using Google OAuth? Follow the Google OAuth production checklist.
- Using Stripe or Lemon Squeezy? Follow the payments production checklist.
7. Custom domain (optional)
Add your custom domain in your hosting provider's project settings and point your DNS records as instructed. SSL is provisioned automatically on all major platforms.
npm run build locally before pushing. It catches TypeScript errors and sitemap generation issues before they fail your CI build.