An example project spec: one YAML document across all environments. Its web service is served at
web-production-clearlinks.aivc.dev.
paas is the control plane Railway would build if it started today, with
agents as the first user
and any provider as the compute. It is one open-source Go binary; the compute is any mix of Hetzner, AWS, bare metal or a
laptop, joined into one pool, and every service gets its own subdomain of aivc.dev.
Railway's product model
is right, but it is locked to Railway's own hardware. The experience is not portable; the builder is, so paas builds with
Railpack by default.
So the data model changes. Projects are persistent by default, with a first-class scratch mode, budgets on every principal,
and the
primitives agents actually need
built into the core rather than added later.
Every capability ships first as a tool: declarative apply, calls that block until something meaningful has
happened, compact outputs, dry-run by default and scoped per-agent credentials. The dashboard is where humans review what the
agents did.
Figure 1. Agents call one tool registry over MCP, the CLI or HTTP. paas server plans, applies, places and meters against the
spec, bumps its version, and schedules onto a node pool that spans providers, where each service is served at its own aivc.dev
subdomain. Every response carries status, a diff and cost.
How it works
01
The spec is the product.
A project is one declarative document across all its environments. The HTTP API, the MCP server and the CLI are generated
from the same tool registry, so nothing exists in one transport and not the others.
02
Tools close the loop.
A deploy returns when the new deployment is healthy, has failed, or runs out of time, and says which. Errors carry what was
observed and a suggestion, and outputs stay small enough to fit in an agent's context.
03
Agents are principals, not tokens.
Every agent run gets its own short-lived, scoped grant with a spend ceiling. Destructive operations need a confirmation
token, and every mutation lands in an append-only audit log with the task it was for.
Deliberately not in v1: GPU scheduling beyond label-based placement, managed vector databases (Postgres with pgvector covers it),
serverless functions and a template marketplace. See what's built.
Why the control plane moves outCoolify disclosure · January 2026
Panels that SSH into the host leave the control plane holding root on every box. Coolify's January 2026 disclosure
listed 11 vulnerabilities, three at CVSS 10.0.
“Railway's experience, your providers' prices, built for your agents.”
The positioning, in one line · PRD v1
Run it anywhere. Every project lands on aivc.dev.
One Go binary runs the control plane. Nodes from Hetzner, AWS, bare metal or a laptop join one pool over a WireGuard mesh, and
each service is served at service-env-project.aivc.dev.
Each node runs paas node, which dials out over mTLS with a short-lived certificate from the control plane's own
CA. The control plane never holds SSH keys or root on a node, so compromising it yields the ability to schedule workloads, not
root on the fleet.
14Dashboard and GitHub · review feed, push-to-deploy, PR environments
15Our agents in production · 30 days, >70% of mutations
Merged on main
Next
Contribute
Start with docs/PRD.md for the product, docs/ARCHITECTURE.md for packages and contracts, and
docs/DECISIONS.md for what's settled. Agents work in parallel on separate branches, each inside the packages its
brief assigns.
from the repo root
go build ./...
go test -race ./internal/<pkg>/...
go build -o paas ./cmd/paas
./paas dev # control plane + local node, services on *.localhost
Railway's MCP server (August 2025) and Coolify's MCP docs are wrappers over existing APIs. Neither changes what a project is, how
credentials are scoped, what a tool returns, or what happens to the hundreds of throwaway projects an agent creates in a week.
Reference 02Coolify · Dokploy
Coolify (~57k GitHub stars) and Dokploy (~35k) are dashboards over Docker on servers you SSH into. Neither has a scheduler over a
mixed fleet, a mesh across providers, environment forking as a first-class object, or per-service cost attribution.
Reference 03Railway
Project, environment and service; variable references; environment forks and PR environments. Railway runs all of it on its own
bare-metal data centers. Railpack, its zero-config builder, is open source and offered to other platforms.
Reference 04Seven service kinds
app, database, cron and bucket match Railway. sandbox, queue and webhook exist because agent-built
products need them and no PaaS offers them as primitives. Beside them: per-environment secrets and an LLM gateway that books inference
against the same budget as compute.