Bitfield stores durable truth and runs the pieces that use it.
A launch screen reads copy, shows a checklist, and has a button that asks for the next step. Storage remembers the copy and checklist. Runtime handles the button target. The app should not wire those worlds together by hand every time.Database
Records and content give the product durable truth.
→
Runtime
Slots and targets do the work around that truth.
→
App
Runtime Kit gives app code named data reads and named requests.
Database
The database side stores records and content so the product can remember what happened. A durable truth means the product can recover, replay, sync, project into other systems, and keep working when plans change.Runtime
The runtime side loads runnable pieces. A runnable piece can be a feature, worker, adapter, renderer, or tool-shaped capability. The public docs call these pieces slots.Why they belong together
If storage and runtime are separate worlds, every feature has to learn how to talk to every other feature and every database choice. That is how products become brittle.With Bitfield, features talk through the shared place. That means the data path and the execution path can stay coordinated without every feature depending directly on the others.The customer-facing rule is simple: your app talks to Runtime Kit, Runtime Kit talks to Bitfield, and Bitfield keeps the durable shape underneath.
Boundary rules
| Boundary | Reader-facing rule |
|---|---|
| App code | Reads named data and sends named action requests. |
| Runtime Kit | Owns the public app-facing calls. |
| Package | Declares records, package-owned bytes, and callable targets. |
| Bitfield | Coordinates durable data and runnable pieces underneath. |
Common mistakes
| Mistake | Why it hurts | Better path |
|---|---|---|
| App code imports package setup | The UI depends on private feature wiring | Use Runtime Kit reads and requests |
| Runtime is treated like a job queue only | The data side disappears | Keep storage and runnable pieces in the same model |
| Database is treated like remote SQL only | Local durable paths and warm-read categories get misunderstood | Read Storage shape |
| Slots are treated like React components | The callable boundary gets blurred | Read Slots |