flowingkhaosSign in
Deploy your own Travolestep 6 of 7 · 0 of 14 carriedSign in to keep it
Step 6 of 7 · weight 3 · about 30 minutes

Deploy to Vercel

Import the repository

  1. In Vercel, choose Add New → Project and import your fork of travole.
  2. Vercel detects Next.js. Keep the defaults: the build command is next build, and the root directory is the repository root.
  3. 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.

The gate · a reading check closes this stepweight 3 of Σw 14

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…

All 7 stepsGo to the gate

Luke Sidney writes and builds everything here, alone, in the open. lukesidney.me