productbuild & ship
rbs build //...
One command builds anything. The same way, every time.
Go, TypeScript, Python, Java, Kotlin, C, C++ and .NET from one graph, with toolchains the branch fetches and pins itself. A build that passes on your branch passes everywhere.
how you use it
Build system, in order.
01
Day one: push the repo, open a branch, build
Push your repository to the workspace and open a branch. The branch server already has rbs; there is nothing to install. The first build needs no configuration: rbs recognises Go modules, Node and Vite apps, Python packages, Java, Kotlin, C, C++ and .NET projects and generates what it needs. When you like what it made, adopt writes the same files into the repo, byte for byte.
02
Week one: declare the floor, and it holds
A test target carries its coverage floor. Below it, the build fails; nobody reads a report. Only passing results are cached, and a cached test replays its coverage and re-checks the floor. The same file declares images, migrations and infrastructure, so there is one language for the whole repo.
03
The agent’s loop: same targets, same floors
An agent in its branch runs the same test target you would. Below the floor it keeps working, because the failure is a build failure it can read. Its passing results land in the same cache as yours, and a hit is exact: the action key covers the command, the input tree, the environment and the rule.
04
Every day: hermetic by construction
Every action runs in its own content-addressed exec root with only its declared inputs and declared environment. Typed environments are checked before a build, typecheck is a target with a ratchet that only goes down, and scaffolds create new apps and services with the gates already declared.
not built yet: strict write sandboxing enforces on macOS today, not yet on Linux · building for several platforms in one invocation
The full reference lives in the docs.
works with
Open a branch and try it.
Boots in seconds. Your team joins with a link.