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:
- switch them from MD to HTML
- delete the
/secretpage, share by link instead - 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:
- it's easy enough to turn a private note into a secret one
- the
/secretpage looks cool - I think it's secure enough
The bad:
- sharing is unnecesserilly hard because the person has to manually paste the key into the
/secretpage - contexts are not that easy to manage
- to share a note to a certain context, I have to go to that context and change it, instead of modifying the note I'm writing
February Solution
- The fields stay the same
- The plugin generates
access.jsonand sends it to the server access.jsonis a list of keys (UUIDs) and values (arrays of note names)- 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.