Operations

Pages

Page Use it to…

Environment variables

configure an environment, or work out what a missing variable breaks

Local development

get the application running on a laptop

Deployment and scheduled jobs

understand the build, the cron entries and the pg_cron schedulers

Runbooks

perform a routine operational task — start a campaign, warm a domain, rotate a secret

Troubleshooting

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. [broadcast], [email-send], [Nooks]

Errors and traces

Sentry, tagged with subscriptionId and the Sentry user

Workflow runs

The Inngest dashboard — per-function, per-step, with replay

Raw webhook payloads

The WebhookEvent table

Database

Supabase dashboard, or pnpm prisma studio

Schedulers

pg_cron jobs in Supabase; Inngest cron functions in the Inngest dashboard

The three things that stop outbound work

Worth knowing before an incident rather than during one.

Symptom First place to look

No calls

Campaign status, then the Redis in-flight counter, then the pg_cron job and INTERNAL_API_SECRET

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 AI_GATEWAY_API_KEY

Troubleshooting expands each of these.