Ink vs Heroku
How Ink MCP compares to Heroku — from legacy PaaS to agent-native infrastructure
Heroku pioneered platform-as-a-service. git push heroku main changed how developers deployed code. But Heroku was designed in 2007 for a world where humans typed commands and read dashboards.
Feature comparison
| Ink | Heroku | |
|---|---|---|
| Agent integration | Skill (prompt-guided), MCP (Streamable HTTP), CLI | MCP only (stdio — requires Heroku CLI v10.8.1+) |
| MCP capabilities | Full read/write: deploy, delete, scale, databases, DNS, logs, metrics | App lifecycle, Postgres ops, add-ons, pipelines, teams |
| Infrastructure | Bare metal (self-owned dedicated servers) | AWS (cloud VMs) |
| Build system | Railpack auto-detection, Dockerfile, Static | Buildpacks (Cedar), Cloud Native Buildpacks (Fir) |
| Pricing model | Per-minute compute billing, no seat fees | Per-dyno ($7–$500/mo) + database fees |
| Databases | SQLite via Turso (edge-replicated) | Postgres ($5–$12,000/mo), Redis, Kafka |
| Sleep behavior | No sleep — services run continuously | Eco dynos sleep after 30 min inactivity |
| WebSockets | Native support, no timeout | Supported — 55-second inactivity timeout |
| HTTP timeout | No enforced limit | 30-second request timeout (H12 error) |
| DNS management | Full programmatic DNS via MCP (A, AAAA, CNAME, MX, TXT, CAA) | No DNS hosting — external provider required |
| Docker support | Dockerfile build pack | Container Registry + heroku.yml |
| GraphQL API | Yes, with introspection | No |
Capabilities checklist
| Capability | Ink | Heroku |
|---|---|---|
| MCP server | ✅ | ✅ |
| Agent Skill (prompt-guided) | ✅ | ❌ |
| CLI | ✅ | ✅ |
| No CLI required for MCP | ✅ | ❌ |
| Multi-agent collaboration | ✅ | ❌ |
| Deploy via MCP | ✅ | ✅ |
| Delete services via MCP | ✅ | ✅ |
| Provision databases via MCP | ✅ | ✅ |
| DNS management via MCP | ✅ | ❌ |
| Metrics via MCP | ✅ | ❌ |
| Logs via MCP | ✅ | ✅ |
| GraphQL API | ✅ | ❌ |
| Bare metal infrastructure | ✅ | ❌ |
| No HTTP request timeout | ✅ | ❌ |
| No sleep/cold start on any tier | ✅ | ❌ |
| Per-minute billing | ✅ | ❌ |
| Add-on marketplace (150+) | ❌ | ✅ |
Where the gap is real
Agent integration: one path vs three
Heroku's MCP server (announced April 2025) wraps the Heroku CLI. It runs as a local stdio process requiring CLI v10.8.1+ and heroku login authentication. Agents can manage apps, scale dynos, read logs, and operate Postgres — a solid set of tools. But it's the only integration path.
Ink gives agents three ways in. The Skill teaches agents the Ink CLI through a prompt file — zero infrastructure, the simplest setup for Claude Code users. The MCP server at https://mcp.ml.ink/ exposes 30+ tools over Streamable HTTP — no CLI needed, works with any MCP client. The CLI works standalone for scripts and CI/CD.
30-second HTTP timeout
Heroku terminates any HTTP request that doesn't send its first byte within 30 seconds (H12 error). Once streaming begins, a 55-second rolling window applies — each byte resets the timer. Long-running work that can't stream progress must be offloaded to background worker dynos. This means you can stream AI responses if data flows regularly, but you can't run silent long computation or maintain idle connections beyond 55 seconds on web dynos.
Ink runs persistent processes with no enforced HTTP timeout. Streaming, long-polling, SSE — all work without architectural workarounds.
Eco dyno sleep
Heroku's Eco plan ($5/mo for 1,000 shared hours) sleeps web dynos after 30 minutes of no traffic. When hours are exhausted, all Eco dynos sleep for the rest of the month. There's no way to buy more hours.
Ink services run continuously. No sleep behavior, no cold starts, no hour pools.
DNS is external
Heroku doesn't host DNS. You register a domain elsewhere, host DNS elsewhere, and configure CNAME records pointing to Heroku's DNS targets. TLS is automated via ACM, but the DNS layer is entirely your responsibility.
Ink manages DNS programmatically through MCP. Delegate your zone to ns1.ml.ink and ns2.ml.ink, and your agent creates A, AAAA, CNAME, MX, TXT, and CAA records directly. No external DNS provider needed.
Infrastructure cost
Heroku runs on AWS. You pay Heroku's margin on top of AWS's margin. A Basic dyno (512MB) is $7/mo. A Performance-M dyno (2.5GB dedicated) is $250/mo. Performance-L (14GB) is $500/mo.
Ink runs on bare metal — self-owned dedicated servers. No cloud provider markup. Per-minute billing for actual compute consumed.
What Heroku does well
Heroku's add-on marketplace (150+ integrations) is unmatched. The Fir generation brings Kubernetes-based infrastructure with ARM processors. Teams are now free for paying customers. And git push heroku main remains one of the most intuitive deployment experiences ever designed — for humans.