Skip to content

How does a note get published — reuse publications/sites, or note-specific? #234

Closed

Description

@brianorwhatever

Part of #227

Question

How does a note get published — reuse publications / sites, or something note-specific?

sites publishes a single uploaded HTML file to a generated *.boop.ad hostname with its own did:webvh and siteDidLogEntries. publications is the existing path for lists. A note is neither: it is boop-rendered content, not user-uploaded HTML, but it wants the hostname-and-portable-identity treatment that sites already has.

Open: does a published note get its own hostname or live under a path? Does it reuse the site DID machinery, the list publication machinery, or a third thing? What happens to the published artifact when the note is edited afterward?

Blocked by the prose-location decision.

Activity

  1. brianorwhatever commented on Oct 3, 2026

    @brianorwhatever
    ContributorAuthor

    Resolution

    • A note publishes through publications, not sites. It gets one publications row and the same DID shape as a list, {authorDid}/resources/list-{id}. No new tables and no third path.
    • Why not sites: site keys are custodial (siteKeys, encrypted by boop), so a site DID proves that boop hosted the page, not that the author wrote it. It would also give the note a second identity beside its did:cel.
    • A published note lives at a path on boop.ad, the same route lists use today (/public/:did). It has no hostname of its own; custom domains for notes are fog.
    • A stranger sees the last sealed version. The public page renders the sealed text held inline in the envelope (What does a note's signature commit to, and when does it seal? #229), never noteBodies. Edits after publishing only reach the public page when the author re-publishes, which appends a new sealed version.
    • Publishing a note grants the same access as a list: anyone signed in can edit the draft, so the permission rules stay as they are.
    • What the build inherits: publishList (convex/publication.ts) currently throws "Notes cannot be published"; that guard is replaced by the Pro gate (Does a note consume list quota? #230) plus the seal. getPublicList must return the sealed body from listEnvelopes for a note, PublicList.tsx needs a note rendering, and the owner needs an "unpublished changes" state when the draft differs from the last seal.
    • Open follow-up (not decided here): because anyone signed in can edit the draft of a published note, the draft is not private (getNoteBody uses canUserViewList), and the next re-publish can seal other people's text under the author's key. At build time this needs either a diff shown to the author before sealing, or a revisit of read-only access for published notes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions