What it does

Point tilstream at a folder of short markdown files, get a static site with:

  • chronological list
  • tag pages
  • search (client-side, prebuilt index)
  • an RSS feed and a JSON feed
  • a /random page because why not

Each file’s front matter is minimal: a date and a list of tags. The title is the first H1. That’s it.

Why I made it

I like writing TILs but I hate the setup overhead. Hugo is great but felt heavy for “I’m going to write 100-word notes about postgres behavior.” I wanted a thing where I could git commit a new markdown file and have it live in 20 seconds.

How it works

Pretty boring! It’s a Go binary that reads a folder, parses markdown with goldmark, and renders templates. The search index is lunr.js prebuilt at compile time, served as a static JSON file. No runtime, no server. The whole thing is about 1,200 lines.

Install

Not on a module proxy. Grab the tree from /src/tilstream/, go build -o tilstream ., and use it locally:

./tilstream init my-til
cd my-til
echo "# pg_stat_statements needs a restart after enabling" > content/2024-01-03-pgss-restart.md
../tilstream build

That’s it.

Roadmap

Nothing planned. It does what I need. I keep it building against current Go but I haven’t added features in a while.