Deploy & go live.
The kit builds to a self-contained Nitro Node server, so it runs on any Node-compatible host and lights up as you set env vars.
Build
npm run build runs prebuild first (regenerates tokens.css and the SEO files), then Vite builds the server into dist/. Smoke test the production build locally before shipping:
npm run build node dist/server/index.mjs # serves the production build
Pre-flight
Before going public, make it yours and clean: run Make it yours to completion (three empty greps), pass the a11y-audit and perf-audit skills, then commit and push with setup-github-backup.md.
Set env vars in the host
This is the human step. Add every key your wired seams need. Two rules carry over:
VITE_*vars are inlined into the client bundle at build time, public, and a change requires a rebuild.- Server secrets stay server-side, never give them a
VITE_prefix. - Set
VITE_SITE_URLto the deployed URL (used for auth redirects).
With no provider vars set, the deployed app simply runs in demo mode, fine for a first preview. The full seam to env map is on Wiring.
Deploy
- Generic Node host (Render, Fly.io, Railway, a VPS): build =
npm run build, start =node dist/server/index.mjs, add env vars in the dashboard. - Vercel / Netlify / Cloudflare: these use Nitro presets. Connect the repo, set the Vite build, add env vars, deploy.
Update redirect-sensitive providers
After you have the live URL (a dashboard step):
- Supabase: add the deployed origin to the project's Redirect URLs / Site URL allow-list.
- Stripe: point the webhook at
https://<your-domain>/api/stripe/webhook, copy the signing secret intoSTRIPE_WEBHOOK_SECRET, then redeploy.
Smoke test live
Load / and /app, click through the nav, and confirm any wired seam works end to end, a real sign-in, a test Stripe checkout. The agent playbook is agent-skills/deploy.md.