Back to Blog

Build, Break, Document: Introducing HR Docs

#docs#documentation#announcement#starlight#astro#open-source

Every time I shipped a project here, I hit the same friction. A blog post is a great place to talk about why I built something — the itch, the tradeoffs, the architecture decisions. It’s a terrible place to maintain a configuration reference that needs to stay accurate six months later.

So I split them apart. The blog stays here. The reference material now lives at docs.hra42.lol under the name HR Docs.

What’s there on day one

The site launches with sections for the projects I’ve been writing about and using daily:

  • ai — a minimal AI shell assistant CLI in Go, with a TUI review step, OpenRouter models, and careful context handling.
  • openrouter-go — the zero-dependency Go SDK I posted about earlier: chat, streaming, tools, structured outputs, multimodal inputs.
  • or-observer — the self-hosted LLM observability platform I wrote up last week.
  • or-analytics, deployer, krites — smaller tools that have been living in private notes until now.

Each section auto-generates from MDX files in the repo, so adding a new page is just dropping a file in the right folder.

The split, in one line

Blog = why. Docs = how.

If a post here makes you want to actually run the thing, the docs site is now where you go. If a docs page makes you wonder why it works the way it does, there’s usually a blog post linked from it.

Tech stack

For the curious: it’s Starlight on Astro, deployed the same way as this site — a Node SSR container behind Traefik. Mermaid diagrams render server-side, code blocks use Expressive Code with the github-dark theme, and there’s a starlight-llms-txt plugin generating an llms.txt so language models can ingest the whole thing cleanly.

The motto on the landing page sums up the intent: build, break, document. This is where I write things down so I don’t have to remember them. If something there helps you too, even better — start at docs.hra42.lol.