Files
shard-wiki/research/260614-localfirst-workspaces-deep-dive
tegwick 3e0c05a2b3 research: local-first workspaces cohort deep dive (Anytype/AFFiNE/AppFlowy) — CRDT substrate; UC-64/65
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>
2026-06-14 16:21:08 +02:00
..

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:

  • Anytypeany-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.
  • AFFiNEYjs/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).
  • AppFlowyYrs 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.