Projects
Many projects, one control plane. Each with its own database, users and keys.
proj_3f9a1c7e5b2d8046
- Users
- 18,420
- Tables
- 12
- Functions
- 5
Self-hosted backend · Open source at launch
Each coding agent gets its own copy of your backend, data included. You approve what ships. All on your own server.
Private beta
Copy-on-write branches
A ZFS snapshot of its parent, data included. It stores only what changes.
A backend per branch
Its own REST API, Functions and Auth sign-in, picked with one header.
Read-only by default
Over MCP, agents start read-only. A 7‑day credential can only look.
Agents stay in their branch
An agent's credential is pinned to one branch. Calls to any other are refused.
You approve every deploy
Agents ask to deploy. Nothing ships until you approve with your password.
Reset or delete
Rewind a branch to where it began, or delete it once its work is done.
… a coding task in its own branch and Git worktree. That stopped agents from editing the same checkout. … Different worktrees could still use the same API, PostgreSQL database, worker, storage service and ports.
Ziptane
A branch per agent.
Each agent works in its own copy of your backend, data included, not just its own checkout. You approve every deploy.
AgentsOne thing I'd keep in mind is the operational overhead rather than just feature parity. The self hosted stack itself isn't usually the hardest part everything that comes after it (backups, upgrades, monitoring, auth changes, storage maintenance and more) is. …
Ziptane
Built to be run, not just installed.
Backups, restores and updates run through Ziptane's own workflows, for every project on the server.
What you need… many of the services require postgres and redis. Currently, all of them are running their own postgres / redis instance in their docker compose file. … This is mostly to save resources as I feel postgres is quite heavy.
Ziptane
Many projects, one install.
One Ziptane serves every project on the server: each gets its own Postgres and REST API, with Auth, Storage, Realtime and Functions built in, not another stack to run.
Platformthe problem and grief we hit was query key hygiene. … invalidations matched way more queries than intended. once socket events started firing frequently that turned into a lot of unnecessary refetching and rerenders.
Ziptane
Subscribe to the result, not the event.
A live query sends each user a fresh result only when it changes, so there's no cache to invalidate.
Live QueriesQuoted as posted. The products they mention may have changed since.
Many projects, one control plane. Each with its own database, users and keys.
proj_3f9a1c7e5b2d8046
Sign-in for every project. Its own users, sessions and signing key, kept on your server.
Files of every kind. Images, video and documents in each project's buckets, on disk or S3-compatible storage.
Postgres data, as an API. Every project gets its own Postgres database and REST API. Query, filter, sort and paginate your tables over HTTP.
GET/db/proj_8d21…/todos
Response200 · 3 rows
[
{ "id": 6, "title": "Book dinner" },
{ "id": 5, "title": "Draft notes" },
{ "id": 4, "title": "Review PR" }
]
Build multiplayer apps. See who's online, share cursors and live edits, and stream every table change to each connected client.
Your code, on your server. Write handlers in TypeScript or JavaScript that take a Request and return a Response. Each runs in its own isolated worker.
Also built in
| id | channel | author | body |
|---|---|---|---|
| 39 | design | Martin | Pushed the new pricing table |
| 40 | launch | Priya | Docs are live on staging |
| 41 | design | Alfredo | Updated hero copy |