Guides
Jobs
defineJob files under jobs/ run on a durable metadata-database queue.
Default-export defineJob from jobs/<name>.ts. The job name is the path after jobs/ without .ts. API and job handlers enqueue with ctx.jobs.enqueue({ name, payload?, runAt?, delayMs? }). The worker retries 5 times with backoff, then marks the run dead. Retry dead jobs from /projects/:id/jobs. Job context has db, email, env, push, jobs, and payload — no HTTP.