generated from coulomb/repo-seed
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>
47 lines
2.4 KiB
Markdown
47 lines
2.4 KiB
Markdown
# 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.
|
|
</content>
|