Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Run durable background workflows from your Vercel app.
The Vercel + DBOS Integration is a reference template for running durable background workflows on Vercel using the DBOS TypeScript framework, combining a Next.js frontend with serverless Vercel Functions. It demonstrates how to offload long-running or scheduled work from request/response code into a reliable background worker, using Postgres as the underlying workflow store via Supabase.
The Vercel + DBOS Integration is an open-source reference app that shows how to run durable background tasks on Vercel. It pairs a Next.js frontend with a serverless Vercel Functions backend: the frontend uses a DBOS Client backed by Postgres to enqueue workflows and display their status, while a worker running in a Vercel Function picks up and executes those enqueued workflows. The template is maintained by DBOS and is designed to be deployed in one click with a Supabase integration.
The user (or an API endpoint) uses the DBOS Client in the Next.js frontend to enqueue a workflow, which is persisted in Postgres. A worker running as a Vercel Function periodically polls the database for pending workflows and executes them, updating their status so the frontend can display results. The worker can be triggered by a Vercel cron job or manually through a button in the app.
The template itself is open source and freely available, and you can deploy the reference app on Vercel's free tier. The built-in cron schedule is intentionally set to once a day on free plans; Vercel limits cron frequency for free deployments, so you can raise the frequency if you're on a paid Vercel plan.
Workflow state is stored in Postgres, provided by Supabase through an integration that is configured automatically when you deploy with the provided Vercel button. The DBOS Client uses this Postgres connection to persist enqueued workflows and results.
Yes. The worker runs inside a Vercel Function, so you do not need a dedicated VM or container. The DBOS pattern stores the execution state in Postgres, which lets a stateless serverless function resume or continue a durable workflow across invocations.
The template's default cron schedule is once a day because of Vercel's free-tier limits. On a non-free plan you can configure the cron to run as often as you want — the DBOS documentation recommends once a minute for typical background job polling.