Combined cohort memo for the three open-source local-first all-in-one workspaces, studied together because they share the trait none of the prior eleven systems had: the store is a CRDT (Anytype any-sync, AFFiNE Yjs/y-octo, AppFlowy Yrs). The cohort thesis: CRDT changes the adapter math — the backend performs conflict-free merge itself (shard-wiki must not impose git/text merge; speak the CRDT via a replica or stay projection/overlay), history is a CRDT update log (supplement not git), and the attach surface is a replica or self-host sync endpoint, with Anytype adding P2P (no single endpoint) + E2EE (opaque). Added UC-64 (CRDT-synced shard with native merge), UC-65 (P2P/decentralized shard, no single canonical endpoint); enriched UC-36/47/48/51/55/57/58/61. Catalog now 65 UCs. Architecture for SHARD-WP-0002 T11/T14: merge-model capability (proposed 13th spectrum: none/git/native-CRDT), CRDT-replica substrate + P2P/no-central-endpoint attach mode, endpoint-model capability, MCP as an integration surface. Boundary: CRDT local-first candidate shards — attach a replica/projection as pages, respect native merge, never re-drive their sync; not substrates and not the federation layer. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
260614 — Local-first workspaces cohort deep dive (Anytype · AFFiNE · AppFlowy)
Date: 2026-06-14
What this is
A combined cohort deep dive of three open-source, local-first "all-in-one workspace" tools — Anytype, AFFiNE, AppFlowy — studied together because they share the one trait none of the prior eleven systems had: the store is a CRDT (Anytype's any-sync, AFFiNE's Yjs/y-octo, AppFlowy's Yrs). The substrate is the contribution; studying them together isolates it from each tool's surface features.
Per-tool highlights:
- Anytype —
any-sync: P2P + E2EE CRDT (sync/file/consensus/coordinator nodes; encrypted backup), a typed object graph (user-editable types + relations), IPFS files, an open API + MCP. - AFFiNE — Yjs/y-octo over OctoBase; BlockSuite editor framework; docs, whiteboards, and databases as views of the same block set; WebSocket sync, self-host (Docker, MPL-2.0).
- AppFlowy — Yrs via AppFlowy-Collab (Rust); Flutter UI; Notion-style databases + views; pluggable storage/sync (RocksDB/IndexedDB; AppFlowy Cloud/ Supabase).
Contents
| Path | Role |
|---|---|
findings.md |
Per-tool sections, the CRDT cohort thesis, comparative matrix, combined capability profile, INTENT mapping, UC seeds, architecture notes, sources |
Status
Cohort dive complete. Two new use cases promoted to spec/UseCaseCatalog.md (UC-64
attach a CRDT-synced local-first shard with native conflict-free merge; UC-65 attach a
peer-to-peer / decentralized shard with no single canonical endpoint); UC-36/47/48/51/55/
57/58/61 enriched. Logged for SHARD-WP-0002 (T11/T14): a merge-model capability
(proposed thirteenth spectrum: none / git / native-CRDT), a CRDT-replica substrate +
P2P/no-central-endpoint attach mode, an endpoint-model capability, and MCP as an
integration surface.
Cohort thesis recorded: CRDT changes the adapter math — the backend performs conflict-free merge itself (so shard-wiki must not impose git/text merge), history is a CRDT update log (supplement, not git), and the attach surface is a replica or sync endpoint (Anytype adds P2P + E2EE). Boundary: CRDT local-first candidate shards — attach a replica/projection as pages, respect native merge, never re-drive their sync; not substrates and not the federation layer.