- Install:
./scripts/cloud-agent-install.sh. That puts Bun on PATH, runsbun install --frozen-lockfile, thenbunx convex dev --onceso a local Convex backend exists. Never commit secrets. - Checks:
bun run lint,bun run typecheck,bun run build. All three must pass. There is no test suite; the build is the gate. - All three checks pass with zero env vars. With Clerk keys missing, every page renders a setup checklist instead of the app.
- Dev servers:
bunx convex devin one terminal andbun devin another, or./scripts/cloud-agent-start.sh(bunx convex dev --start 'bun dev'whenCLERK_JWT_ISSUER_DOMAINis set; otherwisebun devso public pages still come up). - Cloud agents cannot run
convex login. LeaveCONVEX_DEPLOY_KEYunset so the CLI provisions a local backend automatically. - Routes:
/and/boardare public./applyand/hostare Clerk-gated (seeproxy.ts). - Host access:
HOST_EMAILSis required. It gates/hostin Next.js and every host function in Convex. With it unset, nobody can open the host view. - Convex: the client reads
NEXT_PUBLIC_CONVEX_URLfrom env (written into.env.localbybunx convex dev).convex/_generatedis committed, so no codegen runs at install time beyond the--oncepush. - After changing
convex/, keepbunx convex devrunning so the local backend stays in sync. A code change alone does not update a cloud Convex deployment. - When Clerk secrets are missing in the environment, prefer verifying UI changes against the Vercel preview deployment instead of running the gated flows locally.