what i've learned today

Why I chose repository_dispatch over a git submodule

2026-07-18 git github-actions ci

I wanted my notes to live in my Obsidian vault but be built by a separate site repo. The obvious answer looked like a git submodule. It was wrong.

A submodule pins one exact commit. So writing a note in Obsidian and pushing the vault would not update the site at all — the site repo still points at the old commit. I would have to open the site repo and bump the pointer every single time I wrote anything.

The fix is repository_dispatch: the vault repo tells the site repo to rebuild, and the site’s workflow checks out the vault fresh.

curl -X POST \
  -H "Authorization: Bearer $TOKEN" \
  https://api.github.com/repos/me/til-garden/dispatches \
  -d '{"event_type":"vault-updated"}'

Related: A static site doesn’t need a database

← all notes