The 5 apps
Five working tools built on the substrate. Each one uses the 5 opcodes in a different way. Each one runs in the browser, saves to localStorage, and exports to saddle-bridge JSONL. Fork them, learn from them, take them offline.
01The apps
1. kv — A key-value store
The smallest useful app. BIND is the only opcode. 30 lines of code. Try it first.
30 lines2. bus — A pub/sub bus
LINK subscribes a cell to a topic. BIND publishes a message. Listeners fire on every subscriber.
50 lines3. config — A versioned config
Every change is a journal event. Roll back to any past state. Time-travel is the substrate's job.
70 lines4. sixth — A 6th opcode, derived
Use the substrate to define a new opcode. The prover accepts or rejects. The boundary is found, not designed.
50 lines5. plugins — A self-evolving registry
Add a plugin at runtime. The substrate evolves. The new opcodes are bound by the same 5 laws.
50 lines02How they relate to the C99 reference
Each web app is the same algorithm as the corresponding C99 app in quilt-substrate-meta/apps. The web version uses the JavaScript substrate; the C99 version uses the C substrate. The same journal format works for both. You can run the web app, export the JSONL, and replay it in the C99 version. Or vice versa.
The substrate is a contract. The implementations are interchangeable.