NostrClay · approach C · hybrid

The Understory

A community-maintained directory of small, durable software. Two contributors can add to it; one owner can fold what they add into the file itself.

This intro is editable markup the owner types directly — Enter for a new paragraph, the floating toolbar for a heading or a list. The entries below arrive as signed events instead. Both end up in the same file after a compaction, which is the whole point of the hybrid.

The file at rest is a snapshot; the live layer is a log. Everything you see with a solid green edge is ordinary markup inside this HTML file — curl, a crawler and an agent with no JavaScript see all of it. Everything with a dashed amber edge is a signed kind 35129 event that arrived from a relay after the page loaded, and exists nowhere in the served bytes.

Compaction closes that gap. The owner presses Compact; the runtime serialises the composed DOM, pushes it to Blossom as one blob, republishes the nsite manifest, and stamps a new nc:since watermark on <html>. Every event at or below that watermark is now part of the file and is never applied again — which is the only reason reloading a compacted document does not show everything twice.

Directory

in the file — compacted or authored, visible to everyone live event — above the watermark, JavaScript only
  1. Blossomstorage

    Content-addressed blobs over plain HTTP. The hash is the name, so any server holding the bytes is as good as any other one.

    added by the owner · 2026-08-29

  2. nakcli

    One static binary that speaks the whole protocol. Every claim this page makes can be rechecked from a terminal with it.

    added by the owner · 2026-08-29

  3. nsitehosting

    A whole website as one replaceable event holding a table of paths and hashes. This page is a single row of such a table.

    added by the owner · 2026-08-29

The boundary

A compaction watermark is one number. Region events are accepted only while created_at > nc:since; everything older is already inside the bytes you downloaded.

nc:since
0
never compacted
in the file
3
entries in the served markup
above the watermark
0
events waiting to be compacted

What a crawler sees

This refetches this exact URL, parses the response as HTML and counts the entries in it — the same thing a crawler, a curl pipeline or an LLM agent with no JavaScript would get. Before a compaction the two numbers disagree. After one they do not.

served bytes
not checked yet
this live page
entries in the composed DOM
invisible to crawlers
press Re-check

curl -s <this url> | grep -o 'class="e-[n]ame"' | wc -l The bracket is a character class matching one n: it keeps the command from counting the line you are reading.

not signed in

Sign in

Two npubs are on this document's nc:writers list and may publish entries. One npub owns it and may rewrite the file. Everyone else can read — which, after a compaction, means everything.

The key stays in this tab’s memory and is written nowhere — but you are typing it into a page served by a gateway you don’t control. Amber signs without ever handing the key over; prefer it for anything you care about.

Add an entry

This publishes one addressable kind 35129 event to the relays. It appears above the watermark for every reader immediately, and enters the file the next time the owner compacts.

Version history

Every save and every compaction files a kind-5128 snapshot naming an immutable set of Blossom hashes, so any earlier state of this directory can be read back byte-exact.