mk-secret
created ... ago
updated ... ago
#project
#archive

I've updated my site a few days ago (it's 2026-02-17 now) to have a sidebar with backlinks, see mk-bridge > Backlinks & Redesign for more about that. The secret notes (see the up link) remained untouched, though, so now I need to:

  1. switch them from MD to HTML
  2. delete the /secret page, share by link instead
  3. change the link behavior. If a secret note mentions another secret note, it is accessible, too

Except

The current link resolution implementation works by extracting the UUIDs from file names and the file names from the frontmatter, which HTML files don't have.

Since I'm redoing this mechanism anyway, I'll probably change how it works

January Secret Notes Review

The good:

The bad:

February Solution

  1. The fields stay the same
  2. The plugin generates access.json and sends it to the server
  3. access.json is a list of keys (UUIDs) and values (arrays of note names)
  4. notes are now stored by their names, not UUIDs

So the structure should look like:

{
    "sea-uuid": ["sea", "sea-caddy"],
    "sea-caddy-uuid": ["sea-caddy"],
    "uni-uuid": [
        "uni",
        "physics-lecture-02",
        "physics-lecture-04",
        "example-image"
    ],
    "physics-lecture-02-uuid": ["physics-lecture-02"],
    "physics-lecture-04-uuid": ["physics-lecture-04"],
    "colleague-uuid": ["colleague", "staging-credentials"],
    "staging-credentials-uuid": ["staging-credentials"]
}

Notes can be shared like this: snlx.net/uni?invite=uni-uuid. When you open the page, a client script loads the UUID into localstorage and deletes it from the URL.

The server gets a /file?name=uni&keys=uni-uuid,sea-uuid, checks access.json and responds with a 404 if that UUID doesn't exist of it does, but the name doesn't appear under it, or a 200 with the HTML otherwise.