Backend architecture guidance. Use when planning, building, or migrating an API or backend; choosing between Functions, Services, containers, Daemons, Workflow, Queues, and Marketplace databases; or selecting a supported backend framework or runtime.
64
81%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Help the user create a backend by choosing an architecture before reaching for implementation details. Start from the workload, not the programming language. Vercel runs complex backend applications, not just frontends.
| Need | Vercel product |
|---|---|
| HTTP APIs, webhooks, streaming, or framework server code | Vercel Functions with Fluid compute |
| Bidirectional realtime connections (WebSockets) | Vercel Functions with Fluid compute; no separate realtime service required |
| A frontend and one or more backends (API endpoints) that deploy together | Vercel Services |
| An existing Dockerfile, custom runtime, or system dependencies | Container images on Vercel Functions, optionally composed with Services |
| Durable multi-step work with retries, sleeps, or external events | Vercel Workflows |
| Background jobs, buffering, fan-out, or direct message routing | Vercel Queues |
| Always-on workers: queue consumers, Celery/Sidekiq/BullMQ workers, job runners | Vercel Daemons (beta, production only) |
| Scheduled HTTP work | Vercel Cron Jobs; use Workflow when the job itself must be durable |
| Postgres, Redis, NoSQL, vector, or other application data | Storage integrations from the Vercel Marketplace |
| Files and user uploads | Vercel Blob |
| Global, read-heavy configuration | Global Config |
Use Functions for the normal request/response backend. Use Services when independently built components should share one deployment, routing layer, preview URL, and rollback. Use separate Vercel projects when components need independent release cycles.
Prefer a native Functions runtime for supported frameworks. Use container images when the application already has a Dockerfile or requires a custom runtime or system dependencies. They run as autoscaling, stateless Functions rather than always-on container hosts.
Choose Queues for background jobs, buffering, fan-out, and message routing. Choose Workflow for durable multi-step business logic. Choose Daemons only when a process must stay running to pull work, such as a poll-mode queue consumer or an existing Celery, Sidekiq, or BullMQ worker; daemons cannot receive traffic.
Provision data stores through the Marketplace so credentials are injected into the project and environments stay connected. Check the current catalog before choosing a provider.
Keep the database close to the Functions region and use a serverless-compatible connection or pool.
Vercel provides first-class backend examples and integrations for these frameworks:
app, with additional configuration as needed.Frontend and backend combinations, for example a Next.js/Vite/SvelteKit frontend with a FastAPI/Flask/Express/Go backend, can be deployed together in one project using Services.
Prefer the user's existing framework. For a new project, choose based on ecosystem and application needs.
vercel-functions, vercel-services, daemons, queues, workflow, vercel-storage, or marketplace.vercel/vercel-plugin
0db4408
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.