Vibe coding creates deployment debt the moment a toy needs a backend.
The next useful layer is boring ops: DNS, TLS, backups, rollback, and a path from git push to something friends can actually use.
Daniel Vassallo (@dvassallo)
A few months ago my kids started vibecoding little web games with Cursor and wanted their friends to play them. GitHub Pages was fine until the games needed real backends, so I hacked together a setup where each game was a folder in one repo that deployed to a Hetzner box on every push.
That held up until we shipped FULL SEND for Vibe Jam 2026 and it took off with 38,000+ players. The duct tape needed to become something real, so I rebuilt it properly and pulled it out into its own project.
It turns one Linux server into a push-to-deploy host for many apps. The whole thing is a single Go binary that installs and drives Docker, Kamal, Cloudflare, Tailscale, and GitHub for you. After that:
- Each app is a GitHub repo.
- A git push is live in <5 seconds.
- Deploys are zero-downtime.
- Each app runs in its own container.
- Automatic Cloudflare DNS and TLS tunnels.
- SQLite-aware backup and restore.
It's deliberately single server using convention over configuration, so for a typical app there's no YAML or Dockerfile to write. The idea is that one decent VPS can reliably run all your projects without per-app bills or piles of infra config.
It's built on top of Kamal, so it's basically a Kamal wrapper for the "lots of apps on one server" case, with the Cloudflare, Tailscale, DNS, and backup glue wired up by convention.
Setup is one interactive command on a fresh Linux box, which walks you through connecting everything.
If you also have a bunch of projects you want to run on a single server, tell your Claude Code, Codex, Cursor, or favorite AI agent to grab a VPS and try it for you. It's fully open source and you can customize it to your liking: singleserver.com
— https://nitter.net/dvassallo/status/2067270246256521299#m