Getting Started
Deploying to Vercel
Deploy NextBento to Vercel.
Prerequisites
- NextBento project with all services configured (Supabase, Stripe, Resend)
- GitHub account
- Vercel account (vercel.com)
1. Push to GitHub
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/your-username/your-repo.git
git push -u origin main
2. Import Project in Vercel
- Go to vercel.com/new
- Import your GitHub repository
- Vercel will auto-detect Next.js — no build config needed
- Click Deploy (it will fail without env vars — that's expected)
3. Add Environment Variables
In your Vercel project: Settings → Environment Variables
Add all variables from your .env.local:
- Supabase (3 vars)
- Stripe (9 vars: keys + 6 price IDs)
- Resend (1 var)
NEXT_PUBLIC_APP_URL— Set to your Vercel URL, e.g.https://your-app.vercel.app
Tip
Use Production, Preview, and Development as needed. At minimum, set Production.
4. Redeploy
After adding env vars, go to Deployments → Redeploy the latest deployment.
5. Configure Stripe Webhook (Production)
- Go to Stripe Dashboard → Developers → Webhooks
- Add endpoint
- URL:
https://your-app.vercel.app/api/webhooks/stripe - Events:
checkout.session.completed,customer.subscription.updated,customer.subscription.deleted,invoice.paid,invoice.payment_failed - Copy the signing secret and add to Vercel env vars as
STRIPE_WEBHOOK_SECRET - Redeploy
6. Configure OAuth Callbacks
Note
For Google and GitHub OAuth, update the callback URLs in each provider's dashboard:
- Google Cloud Console — Add
https://your-app.vercel.app/api/auth/oauthto authorized redirect URIs - GitHub OAuth App — Set callback URL to
https://your-app.vercel.app/api/auth/oauth - Supabase — Authentication → URL Configuration → Redirect URLs — add the same URL
7. Custom Domain (Optional)
- In Vercel: Settings → Domains
- Add your domain and follow DNS instructions
- Update
NEXT_PUBLIC_APP_URLto your custom domain - Update Stripe webhook URL and OAuth callbacks to use the custom domain
Deploy Checklist
- All env vars added to Vercel
-
NEXT_PUBLIC_APP_URLset to production URL - Stripe webhook endpoint created for production URL
- OAuth callbacks updated for production URL
- Resend domain verified (if using custom domain for emails)
Next Steps
- Running Locally — Development workflow
- Environment Variables — Full reference