NoteTry or Cry

How a note in Obsidian becomes a page on my website

· Day 5 · Obsidian · 3 minHow a note gets to the website: write in Obsidian, sync to GitHub, Cloudflare Pages builds, the page is live

A note becomes a page when its properties say publish: true. The Git plugin syncs it to GitHub, a small check sees that a published note changed, and Cloudflare rebuilds the site. A couple of minutes later it is online. Every note without that line stays in the vault, and so does anything between %% marks.

What stays private

Three rules, no exceptions:

  1. Only notes with publish: true. A note without it never leaves the vault, whatever folder it is in.
  2. %% comments %% are removed, even in a published note. That is where names, numbers and reminders to myself go.
  3. A [[link]] to a private note becomes plain text. The reader sees the words, not a link, and never the note behind it.

The vault itself sits in a private GitHub repository. The website's build can read it, with a token that is only allowed to read, and turns only published notes into pages.

What the build does with a note

A small script runs before every build. It reads the vault and, for each published note:

  • a daily note in Journal/ named like 2026-10-05 becomes that day's page, and the money in its earned property goes into the totals
  • every other note lands where its template says: a note, a guide, a video, a book, a project (more in Obsidian templates that put every note in the right place)
  • [[links]] between published notes become real links, and every note shows which notes link back to it
  • ![[photo.jpg|what it shows]] becomes a small, compressed photo with that description for screen readers. Straight from the phone is fine.
  • ![[clip.mp4|what it shows]] becomes a video player that loads nothing until you press play

What starts a build

Publishing. The notes repository has a small GitHub workflow. On every push it looks at what changed. A published note, or one that was published before and is not anymore? It calls Cloudflare's deploy hook. Only private notes? Nothing happens. The Git plugin pushes every ten minutes while I write, and most of those pushes are private stuff, so this check keeps the build count low.

Midnight in Tokyo. Every night at 00:05 the site rebuilds itself, so the new day gets its page on time.

Scheduling a post

Every note has a date: the day it counts for. If that day is still in the future, the note stays hidden, even with publish: true. On that day, the midnight rebuild puts it online.

So scheduling is two lines: publish: true and tomorrow's date. That is how this series goes out, one guide a day.

Unpublishing

Set publish: false and let it sync. The next build removes the page. The note stays in your vault and in the private repository's history, but the website forgets it.

When a note does not show up

The build log on Cloudflare says why, in plain words, for example skipped "Videos/Interview.md": a video needs a youtube property. Almost always it is one of these:

  • publish is still false
  • the date is missing, or in the future
  • a required field is empty: a video without its youtube address, a book without an author
  • the sync has not happened yet: look for the Git plugin's last push

Next: Obsidian templates that put every note in the right place, so every note lands in the right place. The whole story in one post: How this site works, and how I built it.

Want me in your inbox? 😏

One email every Sunday: what I made, what it earned, and what went wrong.

lassewehlmann.com

The newsletter is coming.

I’m still wiring it up. Until then, every day lands on this site first.