Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ A text-form relational graph covering:
- Common cross-product workflows
- Migration awareness for sunset products

### Skills (32 skills)
### Skills (33 skills)

| Skill | Covers |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
Expand All @@ -73,6 +73,7 @@ A text-form relational graph covering:
| `shadcn` | shadcn/ui — CLI, component installation, custom registries, theming, Tailwind CSS integration |
| `turbopack` | Next.js bundler, HMR, configuration, Turbopack vs Webpack |
| `vercel-agent` | AI-powered code review, incident investigation, SDK installation, PR analysis |
| `vercel-backends` | Backend product and framework selection — Functions, Services, containers, Workflow, Queues, and databases |
| `vercel-cli` | All CLI commands — deploy, env, dev, domains, cache management, MCP integration, marketplace |
| `vercel-connect` | Managed OAuth tokens and third-party connections for apps, MCP servers, and Eve agents |
| `vercel-firewall` | DDoS protection, WAF rules, rate limiting, bot filtering, and IP controls |
Expand Down Expand Up @@ -228,7 +229,7 @@ Exits non-zero if any `SKILL.md` is stale. Add to CI to catch drift.
vercel-plugin/
├── .plugin/plugin.json # Plugin manifest
├── vercel.md # Ecosystem graph + conventions (injected via SessionStart hook)
├── skills/ # 32 skills
├── skills/ # 33 skills
│ ├── ai-sdk/ # Upstream-synced skill example:
│ │ ├── overlay.yaml # Plugin injection metadata
│ │ ├── upstream/ # Pure upstream content
Expand Down
13 changes: 10 additions & 3 deletions generated/skill-catalog.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Skill Catalog

> Auto-generated by `scripts/generate-catalog.ts` — do not edit manually.
> Generated: 2026-08-06T02:59:07.756Z
> Skills: 32
> Generated: 2026-08-11T06:18:02.708Z
> Skills: 33

## Table of Contents

Expand All @@ -26,6 +26,7 @@
| `ai-gateway` | 7 | 0 | 5 | 2 |
| `env-vars` | 7 | 10 | 4 | 0 |
| `microfrontends` | 7 | 4 | 6 | 1 |
| `vercel-backends` | 7 | 2 | 0 | 0 |
| `vercel-firewall` | 7 | 0 | 1 | 0 |
| `vercel-services` | 7 | 2 | 1 | 0 |
| `vercel-storage` | 7 | 15 | 48 | 8 |
Expand Down Expand Up @@ -373,6 +374,12 @@
**Import patterns:**
- `@vercel/microfrontends`

#### `vercel-backends` (priority 7)

**Path patterns:**
- `Dockerfile.vercel`
- `Containerfile.vercel`

#### `vercel-firewall` (priority 7)

**Bash patterns:**
Expand Down Expand Up @@ -984,7 +991,7 @@ Shows which skills compete on shared bash commands.

**Priority 8:** `access-protected-vercel-deployment`, `ai-sdk`, `bootstrap`, `chat-sdk`, `eve`, `vercel-functions`

**Priority 7:** `ai-gateway`, `env-vars`, `microfrontends`, `vercel-firewall`, `vercel-services`, `vercel-storage`, `verification`
**Priority 7:** `ai-gateway`, `env-vars`, `microfrontends`, `vercel-backends`, `vercel-firewall`, `vercel-services`, `vercel-storage`, `verification`

**Priority 6:** `auth`, `cdn-caching`, `deployments-cicd`, `next-cache-components`, `next-forge`, `next-upgrade`, `routing-middleware`, `runtime-cache`, `shadcn`

Expand Down
90 changes: 89 additions & 1 deletion generated/skill-manifest.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"generatedAt": "2026-08-07T18:09:27.746Z",
"generatedAt": "2026-08-11T06:18:01.966Z",
"version": 2,
"skills": {
"access-protected-vercel-deployment": {
Expand Down Expand Up @@ -3162,6 +3162,94 @@
"examples": []
}
},
"vercel-backends": {
"priority": 7,
"summary": "Choose Vercel products and frameworks for a backend",
"docs": [
"https://vercel.com/docs/frameworks/backend",
"https://vercel.com/docs/functions",
"https://vercel.com/docs/services",
"https://vercel.com/docs/queues",
"https://vercel.com/docs/workflow",
"https://vercel.com/docs/storage"
],
"sitemap": "https://vercel.com/sitemap/docs.xml",
"pathPatterns": [
"Dockerfile.vercel",
"Containerfile.vercel"
],
"bashPatterns": [],
"importPatterns": [],
"bodyPath": "skills/vercel-backends/SKILL.md",
"pathRegexSources": [
"^Dockerfile\\.vercel$",
"^Containerfile\\.vercel$"
],
"bashRegexSources": [],
"importRegexSources": [],
"promptSignals": {
"phrases": [
"backend on vercel",
"vercel backend",
"build a backend",
"create a backend",
"deploy my backend",
"backend architecture"
],
"allOf": [
[
"backend",
"vercel"
],
[
"backend",
"docker"
],
[
"backend",
"node"
],
[
"backend",
"python"
],
[
"backend",
"queue"
]
],
"anyOf": [
"api",
"database",
"service",
"workflow"
],
"noneOf": [],
"minScore": 6
},
"retrieval": {
"aliases": [
"Vercel backend",
"backend architecture",
"backend framework"
],
"intents": [
"build a backend on Vercel",
"choose Vercel backend products",
"deploy an existing API or server",
"select a Node.js or Python backend framework"
],
"entities": [
"Vercel Functions",
"Vercel Services",
"Vercel Queues",
"Vercel Workflow",
"Vercel Marketplace",
"container images"
],
"examples": []
}
},
"vercel-cli": {
"priority": 4,
"summary": "",
Expand Down
109 changes: 109 additions & 0 deletions skills/vercel-backends/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
---
name: vercel-backends
description: Vercel backend architecture guidance. Use when planning, building, or migrating an API or backend on Vercel; choosing between Functions, Services, Docker containers, Workflow, Queues, and Marketplace databases; or selecting a supported Node.js or Python backend framework.
summary: Choose Vercel products and frameworks for a backend
metadata:
priority: 7
docs:
- "https://vercel.com/docs/frameworks/backend"
- "https://vercel.com/docs/functions"
- "https://vercel.com/docs/services"
- "https://vercel.com/docs/queues"
- "https://vercel.com/docs/workflow"
- "https://vercel.com/docs/storage"
sitemap: "https://vercel.com/sitemap/docs.xml"
pathPatterns:
- 'Dockerfile.vercel'
- 'Containerfile.vercel'
promptSignals:
phrases:
- "backend on vercel"
- "vercel backend"
- "build a backend"
- "create a backend"
- "deploy my backend"
- "backend architecture"
allOf:
- [backend, vercel]
- [backend, docker]
- [backend, node]
- [backend, python]
- [backend, queue]
anyOf:
- "api"
- "database"
- "service"
- "workflow"
noneOf: []
minScore: 6
retrieval:
aliases:
- Vercel backend
- backend architecture
- backend framework
intents:
- build a backend on Vercel
- choose Vercel backend products
- deploy an existing API or server
- select a Node.js or Python backend framework
entities:
- Vercel Functions
- Vercel Services
- Vercel Queues
- Vercel Workflow
- Vercel Marketplace
- container images
---

# Backends on Vercel

Help the user choose a backend architecture before reaching for implementation details. Start from the workload, not the programming language. Do not treat Vercel as frontend-only or frame the answer around Python.

## Product map

| Need | Vercel product |
| --- | --- |
| HTTP APIs, webhooks, streaming, or framework server code | **Vercel Functions with Fluid compute** |
| A frontend and one or more backends 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 Workflow** |
| Background jobs, buffering, fan-out, or direct message routing | **Vercel Queues** |
| 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 | **Edge 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.

Use a `Dockerfile.vercel` or `Containerfile.vercel` for an HTTP server that needs an OCI image. Vercel builds and stores the image, then runs it as an autoscaling, stateless Function. This is not an always-on container host; keep persistent state in a database or storage service.

Choose Queues for control over topics, messages, consumer groups, fan-out, and delivery. Choose Workflow for stateful business logic expressed as durable steps. Queue consumers must tolerate at-least-once delivery and be idempotent.

## Databases and data stores

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.

- **Postgres:** Neon, Supabase, AWS/Aurora, Nile, Prisma
- **Redis and key-value:** Upstash, Redis
- **Document and NoSQL:** MongoDB Atlas, AWS
- **SQLite:** Turso
- **Realtime application backend:** Convex
- **Analytics:** MotherDuck

Keep the database close to the Functions region and use a serverless-compatible connection or pool.

## Backend frameworks

Vercel provides first-class backend examples and integrations for these frameworks:

- **Node.js and TypeScript:** Elysia, Express, Fastify, H3, Hono, Koa, NestJS, Nitro, and xmcp. Next.js Route Handlers are the natural choice when the backend belongs to a Next.js application.
- **Python:** FastAPI, Flask, and Django. Other WSGI or ASGI applications can run when they export a compatible `app`, with additional configuration as needed.

Prefer the user's existing framework. For a new project, choose based on ecosystem and application needs; do not recommend a language merely because Vercel supports it.

## Work sequence

1. Identify synchronous requests, asynchronous work, persistent data, and independently deployed components.
2. Select the products from the map, then select the framework.
3. Load the focused skill for implementation: `vercel-functions`, `vercel-services`, `workflow`, `vercel-storage`, or `marketplace`.
4. Confirm function limits, regions, environment variables, observability, and current product availability in the official docs before deployment.
4 changes: 4 additions & 0 deletions skills/vercel-backends/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
interface:
display_name: "Vercel Backends"
short_description: "Choose the right Vercel backend products"
default_prompt: "Use $vercel-backends to plan and build a backend on Vercel."
1 change: 1 addition & 0 deletions vercel.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ VERCEL PLATFORM 📖 docs: https://vercel.com/docs
│ ⊃ Runtime Cache (per-region key-value, tag-based invalidation)
│ ⊃ WebSockets (bidirectional realtime on Functions, needs Fluid Compute)
│ ⊃ Cron Jobs (scheduled function invocation → see § Functions decision matrix)
│ ⤳ skill: vercel-backends (backend product and framework selection)
│ ⤳ skill: vercel-functions
│ ⤳ skill: routing-middleware
│ ⤳ skill: runtime-cache
Expand Down
Loading