Launch
Production launch checklist for provider setup, DNS, deployment, and readiness gates.
Launch is the point where local wiring becomes public infrastructure. Keep this page boring and strict: it exists to prevent "works locally" from becoming a production surprise.
1. Local Preflight
Run these before touching production:
bun run readiness
bun run --cwd apps/web check-types
bun run --cwd apps/fumadocs check-typesIf the dev stack is already running, add the smoke gate:
bun run smoke2. Provider Inputs
Collect these before strict readiness:
| Provider | Needed values |
|---|---|
| GitHub | App ID, slug, client ID, client secret, private key, webhook secret |
| AI | API key, model name, provider policy |
| Resend key, verified sender, sending domain | |
| Billing | Stripe secret key, webhook secret, product and price IDs |
| Hosting | Web app URL, docs URL, Convex deployment, DNS records |
3. Convex Environment
Set production server-side values in the backend environment. Keep client-exposed values limited to
VITE_ variables.
bunx convex env set SITE_URL "https://amend.sh"
bunx convex env set BETTER_AUTH_SECRET "<generated-secret>"
bunx convex env set GITHUB_WEBHOOK_SECRET "<webhook-secret>"
bunx convex env set AMEND_API_TOKEN "<owner-token>"
bunx convex env set POSTHOG_API_KEY "phc_BCb25jVTo59jtEMPysgGUvgt85bUYGwN8XBNA2oMNLY7"
bunx convex env set POSTHOG_HOST "https://us.i.posthog.com"Set the matching web deployment analytics values:
VITE_POSTHOG_TOKEN=phc_BCb25jVTo59jtEMPysgGUvgt85bUYGwN8XBNA2oMNLY7
VITE_POSTHOG_HOST=https://us.i.posthog.com
VITE_POSTHOG_PROJECT_ID=4411954. Domains
Use the dedicated docs host for this launch:
| Surface | Example |
|---|---|
| Web app | https://amend.sh |
| Docs | https://docs.amend.sh/docs |
| Portal | https://amend.sh/portal/acme |
| API | Convex site URL or a routed API domain |
Set VITE_DOCS_URL to the final docs root so every landing, footer, setup, and dashboard link goes
to the same place.
The main site also proxies /docs through Vercel so https://amend.sh/docs opens the docs index.
See Production routing for the routing contract.
5. Final Gate
Before announcing:
- sign in from the deployed web app
- open docs from
https://amend.sh/docsandhttps://docs.amend.sh/docs - confirm
amend.shanddocs.amend.shresolve through A/AAAA or CNAME DNS records - send a signed GitHub webhook to production
- submit feedback through the portal
- publish a changelog entry from reviewed source evidence
- send one real email to a test recipient
- confirm Stripe webhook delivery
- rerun
bun run readiness:strict - rerun
bun run agent-ready:built - rerun
bun run agent-ready:live
Use the production wrapper only when production secrets and DNS are expected to be ready:
bun run agent-ready:production