Local-first.
Capability-routed.
The public interface is not coupled to any one read API. Domain data is canonical, adapter behavior is explicit, and the selected write route is pinned before submission.
The system at a glance
The diagram separates what is stored, which capability is required and who can fulfill that capability. It is not a claim that every listed optional capability is deployed today.
Read path (local-first)
Only cached content survives offline; unseen remote casts cannot appear without a network source. A cache is not an alternative full network replica.
Write path (signer-bound and durable)
Why route pinning is non-negotiable
Changing the preferred node after composing a message must not make an unresolved write silently jump to another validator. Genycaster persists the writer association before its HTTP transmission, with a fail-closed path when provenance is missing.
Five capability origins
| Class | Examples | Availability |
|---|---|---|
| Protocol | FID, casts, links, signer state | Raw reader where supported |
| Derived | Global Explorer, search, rankings, counts | Indexer or bounded local derivation |
| Compatibility | Managed app-specific APIs | Optional and explicit |
| Extension | Independent app functionality | Feature-gated |
| Local | Cached search, drafts, settings, outbox | Device-side |
Read the actual implementation
Start with the repository's architecture overview, routing consent policy and durable writer contracts.