Operations
Pages
| Page | Use it to… |
|---|---|
configure an environment, or work out what a missing variable breaks |
|
get the application running on a laptop |
|
understand the build, the cron entries and the |
|
perform a routine operational task — start a campaign, warm a domain, rotate a secret |
|
diagnose "nothing is dialing", "no emails are going out", and similar |
Commands
pnpm dev # development server
pnpm build # next build
pnpm build:prod # prisma generate + next build
pnpm start # production server
pnpm lint # eslint
pnpm prisma:generate # regenerate the client
pnpm prisma:format # format the schema
pnpm prisma:migrate # format + db push + generate (schema push — dev only)
pnpm prisma:migrate:dev # format + migrate dev + generate
pnpm prisma studio # browse data
pnpm prisma:migrate uses db push, which changes the database without creating a migration file. Use it
only for local iteration; anything that reaches an environment needs prisma:migrate:dev.
There is no test runner. Write testable code — pure functions, injected dependencies — but do not add test infrastructure unless it is explicitly requested.
Operational surfaces
| Surface | Where |
|---|---|
Application logs |
Vercel; search by the bracketed prefixes handlers use, e.g. |
Errors and traces |
Sentry, tagged with |
Workflow runs |
The Inngest dashboard — per-function, per-step, with replay |
Raw webhook payloads |
The |
Database |
Supabase dashboard, or |
Schedulers |
|
The three things that stop outbound work
Worth knowing before an incident rather than during one.
| Symptom | First place to look |
|---|---|
No calls |
Campaign |
No emails |
Active variations and their hourly rate, then active sending accounts and their daily caps |
No analyses |
Whether an analysis agent is configured for the workspace, then |
Troubleshooting expands each of these.