Beet

Beet is an operating system built around a person rather than a machine. The software you build on it is a repo of scenes, records and blobs that belongs to an account, and can be accessed via browser, terminal, ssh session or native GUI.

🚧 Beet is pre-release and under active construction. If it sounds interesting, come and say hi in the Beet Roomy space.

How it works

Beet is built on the Bevy game engine, and everything in beet, from a ui tree to a router to a cloud deploy, is Entity Component System (ECS) data. A repo is an account's whole store, and a runtime is a binary that runs one, doing nothing until given the repo's entry document, main.bsx, the data driven entry point to the program. Servers, routes, behaviors and deploys are entities declared there or in the documents it pulls in, and behavior is spelled as actions, entities that behave like functions. The glossary has one meaning for each of these words.

Because behavior lives in scenes rather than compiled control flow, software stays open while it runs, ready for you, your collaborators and your agents to inspect and reshape.

Malleable

Malleability in beet is a slope rather than a cliff, with a real mechanism at every level of involvement, and each layer stays open while the software runs.

A person tweaking a value in a scene today can reach for a script tomorrow and a plugin after that, without the thing they made ever being thrown away and rewritten.

Agnostic

A runtime does nothing by default and assumes nothing about what you are making, and everything it stands on is a swappable stack.

Decentralized

A repo belongs to an account and runs the same everywhere. Identity and sync sit above it as capabilities the repo does not depend on, atproto first.

Where to go next

The blog follows the project's month-to-month development, and the per-crate API docs cover the details.