TalkCo supporting research

Wave 4 — Library seams for a distributed local-first platform

DRAFT 6 sections

#Proposed seam map

TalkCo signed events
  → authority and deterministic moderation reducer
  → OpenMLS groups OR object AEAD/HPKE envelopes
  → local durable store and projections
  → discovery, transport, relay, and ciphertext custody adapters
SeamFirst candidateRoleBoundary or caveat
Group messagingOpenMLSMLS state and epochsPin versions, exercise persistence/exporters/recovery, and maintain TalkCo binding
Messaging interoperabilityMarmotMLS-over-Nostr reference/adapterNewer protocol; do not make interoperability authority
Local projections/draftsAutomerge or YjsOffline draft and view stateCRDT is not authorization; published state remains signed events
Durable local storeSQLite first; RxDB/PouchDB as benchmarksQuery/index/projection storageReplication must not choose authority
Native transportirohQUIC endpoints, relay, discovery, blobsEndpoint identity is not TalkCo identity
Browser/multi-language transportlibp2pNoise/TLS, relay, rendezvous, pubsubDiscovery and metadata policy need application control
Fine-grained local-first spikep2pandaSigned operations and permissions referenceVerify current encryption, audit, FFI, and migration maturity
Transparency backendTesseraAppend-only checkpoint/tile serviceTransparency supports consistency evidence, not identity or authorization
Edge custody referenceTahoe-LAFSCapability-oriented encrypted storage modelStorage availability and read authority remain separate

#Candidates kept as benchmarks or adapters

Matrix, Nostr, Hypercore/Hyperswarm, SSB, ElectricSQL, cr-sqlite, Loro, and PouchDB/CouchDB each illuminate an event, replication, or discovery tradeoff. They should be measured against the TalkCo event and authority contract rather than adopted for feature count. Archived or abandoned transparency code should not become a live dependency; a maintained transparency implementation must pass the same maturity gate.

#Smallest useful experiments

  1. Persist signed message, promotion, reply, device, and moderation events in SQLite; replay them in arbitrary order and compare reducer state.
  2. Add OpenMLS for a small conversation and verify that TalkCo user/device roots bind the group and exporter context.
  3. Encrypt a post and attachment once; deliver HPKE envelopes to separate audiences; promote to a wider audience without revealing the source conversation.
  4. Run the same event set over iroh and libp2p adapters with a malicious relay and an offline peer.
  5. Replace the local database and transport independently; prove that neither substrate identity nor arrival order changes authorization.
  6. Add a disposable p2panda/Marmot adapter only after the canonical tests pass.

#Falsifiers

  • A package's built-in identity becomes the authority instead of TalkCo signed records.
  • Sync, discovery, or CRDT repair cannot preserve duplicate/out-of-order event semantics.
  • Browser/mobile persistence or key recovery is weaker than the intended context profile.
  • License, audit, maintenance, FFI, or security-advisory constraints block the target platforms.
  • Relay/DHT metadata exposes the social graph beyond the declared privacy budget.

#Open Threads

  • Verify exact versions, security advisories, licenses, and mobile/browser support immediately before implementation.
  • Benchmark fanout, battery, repair time, proof size, storage, and group churn at the planned audience sizes.