Deploy your EventSeats booking system to Vercel with Supabase database.
- A Vercel account (free)
- A database provider (Supabase, Railway, or Neon - all have free tiers)
- Your environment variables ready
git clone https://github.com/hannah-goodridge/eventseats.git
cd eventseats- Go to supabase.com
- Create a new project
- Go to Settings > Database
- Copy the connection string (it looks like:
postgresql://postgres:[PASSWORD]@[HOST]:5432/postgres)
- Go to railway.app
- Create a new PostgreSQL database
- Copy the DATABASE_URL from the Connect tab
- Go to neon.tech
- Create a new database
- Copy the connection string
- Push your code to GitHub
- Go to vercel.com and import your repository
- Add environment variables in Vercel dashboard:
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL="https://your-project.supabase.co"
NEXT_PUBLIC_SUPABASE_ANON_KEY="your-anon-key"
SUPABASE_SERVICE_ROLE_KEY="your-service-role-key"
# Authentication
NEXTAUTH_SECRET="your-secret-key-here"
NEXTAUTH_URL="https://your-app.vercel.app"
STRIPE_PUBLISHABLE_KEY="pk_live_..."
STRIPE_SECRET_KEY="sk_live_..."
STRIPE_WEBHOOK_SECRET="whsec_..."
# ... other variables from .env.exampleAfter deployment, run migrations:
# Clone your repo locally if you haven't already
npm install
npm run setup-demo- Go to your Stripe Dashboard > Webhooks
- Add endpoint:
https://your-app.vercel.app/api/stripe/webhook - Select events:
checkout.session.completed,payment_intent.succeeded - Copy the webhook secret to your Vercel environment variables
- Visit your Vercel URL
- Create a test booking
- Check admin dashboard at
/admin
Copy all variables from .env.example and update with your production values:
- DATABASE_URL: Your PostgreSQL connection string
- NEXTAUTH_URL: Your Vercel deployment URL
- STRIPE_*: Your live Stripe API keys (for production)
- SMTP_*: Your production email configuration
- VENUE_*: Your venue details
Vercel automatically redeploys when you push to your main branch. To deploy:
git add .
git commit -m "Update booking system"
git push origin main- In Vercel dashboard, go to your project
- Go to Settings > Domains
- Add your custom domain
- Update DNS records as instructed
- Update
NEXTAUTH_URLenvironment variable
- Enable Vercel Analytics in your dashboard
- Consider Vercel Pro for better performance
- Use Edge Middleware for faster auth checks
- Enable Image Optimization for show posters
"Database connection failed"
- Verify DATABASE_URL is correct
- Check database is publicly accessible
- Ensure SSL is configured correctly
"NEXTAUTH_URL mismatch"
- Update NEXTAUTH_URL to match your domain
- Redeploy after changing environment variables
"Stripe webhooks failing"
- Verify webhook URL in Stripe dashboard
- Check webhook secret matches environment variable
- Test with Stripe CLI:
stripe listen --forward-to localhost:3000/api/stripe/webhook
- Monitor deployments in Vercel dashboard
- Set up error tracking (Sentry recommended)
- Monitor database performance in your provider's dashboard
- Track Stripe payments in Stripe dashboard
Vercel scales automatically, but consider:
- Database connection limits
- Stripe rate limits
- Email sending limits
- File storage needs (add AWS S3 if needed)