Ink vs Vercel
How Ink compares to Vercel — serverless frontend platform with per-seat pricing versus full-stack agent infrastructure
Vercel is the default deployment platform for Next.js. It does frontend and serverless functions extremely well. But Vercel's architecture is not designed for raw WebSocket servers, persistent background processes, or arbitrary Docker container runtimes — and its per-seat pricing model doesn't fit a world where agents are the operators.
Feature comparison
| Ink | Vercel | |
|---|---|---|
| Agent integration | Skill (prompt-guided), MCP (Streamable HTTP), CLI | Skill (vercel-labs/agent-skills), MCP (Streamable HTTP with OAuth at mcp.vercel.com), CLI |
| MCP capabilities | Full read/write for Ink services, templates, volumes, DNS, logs, metrics | Project, deployment, log, documentation, domain purchase, access, and CLI helper tools |
| Pricing model | Per-minute compute, no seat fees | Per-seat Pro plan + usage. Viewer seats are separate from deploy-capable seats |
| Infrastructure | Bare metal (persistent processes) | AWS Lambda (serverless functions) + Edge Network |
| WebSockets | Native support | Server-owned WebSocket connections require separate realtime infrastructure |
| Long-running work | No platform request timeout for persistent processes | Bounded by serverless execution windows |
| Long-running streaming | Yes — SSE, long-poll, streaming without platform request limits | Bounded by function and edge runtime limits |
| Game servers | Yes — persistent processes, custom ports | Not possible — no stateful connections, no custom ports |
| Docker support | Dockerfile build pack | Not supported |
| Backend support | Any framework, persistent processes | Serverless functions only (Express, FastAPI, etc. as Lambda) |
| Databases | PostgreSQL, Redis, MySQL, MongoDB (via templates) | Database integrations through marketplace and partner providers |
| DNS management | Full programmatic DNS zones and records via MCP | Domain purchase via MCP; broader DNS work uses Vercel APIs/CLI |
| Build system | Railpack auto-detection, Dockerfile, Static | Framework-specific and Next.js-optimized |
| GraphQL API | Yes, with introspection | No |
Capabilities checklist
| Capability | Ink | Vercel |
|---|---|---|
| MCP server | ✅ | ✅ |
| Agent Skill (prompt-guided) | ✅ | ✅ |
| CLI | ✅ | ✅ |
| Multi-agent collaboration | ✅ | ❌ |
| Deploy via MCP | ✅ | ✅ |
| Delete services via MCP | ✅ | ❌ |
| Provision databases via MCP | ✅ | ❌ |
| DNS management via MCP | ✅ | Partial |
| Metrics via MCP | ✅ | ❌ |
| Logs via MCP | ✅ | ✅ |
| GraphQL API | ✅ | ❌ |
| WebSockets | ✅ | ❌ |
| Long-running processes | ✅ | ❌ |
| Persistent server processes | ✅ | ❌ |
| Docker support | ✅ | ❌ |
| Bare metal infrastructure | ✅ | ❌ |
| Free seats (no per-seat pricing) | ✅ | ❌ |
| Per-minute billing | ✅ | ❌ |
| Self-hosted database templates | ✅ | ❌ |
| Preview deployments per PR | ❌ | ✅ |
| Edge CDN / image optimization | ❌ | ✅ |
| Next.js-specific optimizations (ISR, etc.) | ❌ | ✅ |
Where the gap is real
Per-seat pricing in the agentic world
Vercel uses paid developer seats on Pro. Viewer seats are separate, but anyone who deploys or configures production resources needs deploy-capable access.
This model doesn't survive contact with agents. If one agent deploys your app and a different agent debugs it next week, per-seat pricing tries to charge for entities with zero marginal cost. The actual platform cost is compute and bandwidth consumed, not how many operators have access.
Ink charges for compute used. Add as many agents, developers, or collaborators as you want. Your bill reflects what you run, not who can see the dashboard.
WebSockets and persistent connections
Vercel's serverless architecture is not designed for server-owned WebSocket connections. Real-time apps typically use third-party providers or separate realtime infrastructure.
This means you can't build on Vercel:
- Real-time chat applications with server-managed state
- Multiplayer game servers
- Live collaboration tools with bidirectional streaming
- Long-running AI inference with streaming responses beyond serverless limits
- Any service requiring persistent server-to-client connections
Ink runs persistent processes. WebSockets, SSE, long-polling — all work natively with no timeout constraints.
Serverless ceiling
Every backend on Vercel runs inside a serverless execution model with bounded execution time and payload limits. No in-memory state persists between requests. Background workers, queue consumers, and persistent processes need a different runtime.
Ink deploys containers that run continuously. Your backend can hold state in memory, process background jobs, maintain database connection pools, and handle any workload pattern — not just request/response.
Agent integration depth
Vercel offers several integration paths: a hosted MCP server at mcp.vercel.com, Agent Skills via vercel-labs/agent-skills, and the Vercel CLI. The MCP server includes project, deployment, log, documentation, domain purchase, access, and CLI helper tools.
Ink also offers CLI, Skill, MCP, and dashboard paths. The key difference is runtime and resource model: Ink's MCP manages persistent services, templates, volumes, DNS zones and records, logs, metrics, workspaces, and audit logs directly. service_create deploys services, template_deploy provisions database/service stacks, and domain_add configures custom domains.
No Docker
Vercel does not support arbitrary Docker container deployments. Everything must fit their serverless build pipeline. If your stack needs a custom runtime, system dependencies, or anything outside their supported frameworks, you need a different runtime.
Ink supports Dockerfile builds alongside Railpack auto-detection and static site serving.
What Vercel does well
Vercel's Next.js integration is unmatched. Preview deployments on every PR, edge caching, image optimization, and ISR work seamlessly. The Edge Network delivers static assets fast. For teams building Next.js frontends deployed by humans through git push, Vercel is excellent at that specific job.