Destination
boop grows a notes surface where a note is a list — same lists table, same assetDid/listEnvelopes identity, same publish path — carrying prose instead of items. Cloud-native: notes live in Convex, not as files on disk.
Shipped means: a stranger lands on a published note and can confirm who wrote it and that it has not been altered since. Provenance is the product, not the editor.
Notes
Domain: boop — Convex (realtime DB + HTTP actions), React 19 + Vite + TS + Tailwind v4, Originals SDK for DIDs (did:webvh, did:cel) and VCs. Relevant existing machinery: lists (assetDid, vcProof), listEnvelopes (signed CEL event log), items, publications / sites / siteDidLogEntries (signed publishing), subscriptions + list cap, presence / comments / activities.
Skills every session should consult: /grilling and /domain-modeling by default; /prototype for the prototype tickets; /research for research tickets.
Standing preferences for this effort:
- Plan, don't do. These tickets resolve decisions; the build is a separate handoff.
- A note is a list. Reuse the primitive — do not introduce a parallel data model. If a ticket's answer requires a new primitive, that's a signal to re-examine the destination, not to quietly add one.
- Provenance is the wedge. When a decision trades editor polish against verifiability, verifiability wins.
- This audience is not Obsidian's local-first users. They were consciously given up when cloud-native was chosen; do not re-litigate it per ticket.
Decisions so far
None yet.
Not yet specified
- Editor choice, and whether markdown is the storage format. Hangs on where prose lives.
- Concurrent / multiplayer prose editing.
presence and comments exist for lists, but concurrent prose is a different problem than concurrent item rows. Revisit once sealing granularity is settled.
- Import from an existing Obsidian vault. Whether a migration path exists at all, and what it costs, once the note shape is known.
- Mobile note-writing. A Capacitor app exists; unknown whether notes need it at ship.
- Discovery of published notes. SEO, indexing, whether published notes are listed anywhere.
Out of scope
- Local files / local-first sync. Cloud-native was chosen deliberately; notes live in Convex.
- Notes as a separate primitive — own table, own DID lifecycle, own editor stack.
- Graph view, backlinks, wiki-links. This is where "Obsidian replacement" becomes literally true and the surface becomes its own product.
- Plugin ecosystem.
- Winning Obsidian's local-first users. Different audience, consciously not pursued.
Destination
boop grows a notes surface where a note is a list — same
liststable, sameassetDid/listEnvelopesidentity, same publish path — carrying prose instead of items. Cloud-native: notes live in Convex, not as files on disk.Shipped means: a stranger lands on a published note and can confirm who wrote it and that it has not been altered since. Provenance is the product, not the editor.
Notes
Domain: boop — Convex (realtime DB + HTTP actions), React 19 + Vite + TS + Tailwind v4, Originals SDK for DIDs (
did:webvh,did:cel) and VCs. Relevant existing machinery:lists(assetDid,vcProof),listEnvelopes(signed CEL event log),items,publications/sites/siteDidLogEntries(signed publishing),subscriptions+ list cap,presence/comments/activities.Skills every session should consult:
/grillingand/domain-modelingby default;/prototypefor the prototype tickets;/researchfor research tickets.Standing preferences for this effort:
Decisions so far
None yet.
Not yet specified
presenceandcommentsexist for lists, but concurrent prose is a different problem than concurrent item rows. Revisit once sealing granularity is settled.Out of scope