Deploy to Vercel
Import the repository
- In Vercel, choose Add New → Project and import your fork of
travole. - Vercel detects Next.js. Keep the defaults: the build command is
next build, and the root directory is the repository root. - Do not deploy yet. Open Environment Variables first.
Set the variables
Add every variable from your local .env, for the Production environment, with one change:
BETTER_AUTH_URL=https://<your-project>.vercel.app
BETTER_AUTH_URL must be the address people will actually use. If it still says
localhost, sign-in fails in production with no helpful error.
Two things to know about Vercel variables:
- They are baked in at build time. After you change one, you must redeploy for it to apply.
- Each variable has its own list of environments. A variable set only for Production is missing in Preview builds, and a preview will fail on it. Check the environments column, not only the name.
Migrate before you deploy
Your production database needs its tables before the first request arrives. If your production
DATABASE_URL is the same Neon database you used locally, you already did this in step 5. If you
created a separate production branch or project in Neon, run it once against that one:
DATABASE_URL=<production connection string> bun run db:migrate
DATABASE_URL=<production connection string> bun run db:seed
Keep this order for every future schema change: migrate first, deploy second. Code that reads a column the database does not have yet fails on every page that reads it.
Deploy
Press Deploy. The build takes about a minute. When it is green, open the production URL, go to
/signup, and claim the bootstrap door with your allowed address.
From now on, every push to your fork’s main branch deploys automatically.
Check what you read in “Deploy to Vercel”
The questions are public; scoring them needs an account. They were generated once for this step, and the key never leaves the server.
Loading the check…