Overview

This is the engine powering this site. It started as a weekend hack and turned into a small static-ish stack:

  • Go HTTP server with stdlib `net/http`
  • templ for typed templates
  • Neorg (.norg) as the authoring format
  • Tailwind for styling

Why a custom engine

I wanted three things off the shelf systems did not give me together:

  • Neorg as the source of truth, not Markdown
  • a single deployable binary with no JS framework
  • folder-based projects with nested devlogs

What works today

  • folder-based project loader
  • nested projects{slug}/{post} routes
  • bento grid for devlogs
  • richer search ranking
  • RSS for project subposts
  • comments via third-party widget

Stack at a glance

LayerToolNotes
Servernet/httpstdlib mux, longest-prefix routing
Templatesa-h/templtyped, compiled to Go
ContentNeorg parsercustom, in `internal/content`
StylesTailwind v4+ handwritten components

Glossary

index.norg
required entry file for each project folder; defines the project metadata.
subpost
any other .norg file inside the project folder, listed in the bento grid.
bento grid
responsive CSS grid where the first card spans 2x2 as the featured tile.

The engine is intentionally small: ~2k LOC of Go does loading, routing, rendering, and search.

See the devlogs below for how it came together.