The architecture
Every project is a Capsule - identity, backing, receipts, and Meme Engine memory that compounds. The coin is an optional output. The moat is the accumulating data. Here is how the whole thing fits together.
The core loop
A cultural moment becomes distribution and a permanent record. Every run makes the next one smarter. Step through it:
Click a step - or wait, it advances on its own.
System map
Every privileged action runs on the server with the service-role key; the browser never holds a secret. Every external system sits behind an adapter or a thin client. Click any node.
Data model
RLS is on everywhere with no anon policies; reads and writes go through the server. Types are CHECK constraints, not enums - a new kind is a plain migration. Backing is provider-agnostic, so value settles off-chain or on-chain into the same table.
Adapter seams
Three registry-backed seams keep the loop swappable end to end. Adding a backend is a new file plus one import in bootstrap.ts - no UI change.