~/jonas/projects $ ls -l

projects

Small, durable tools. Most solve one problem and then stop changing.

active
litequeuewip · 2026

A dependency-free job queue that lives in a table you already have. The entire concurrency model is one FOR UPDATE SKIP LOCKED claim query; visibility timeouts are folded into the same statement so there's no reaper goroutine and nothing to schedule. Built it after deleting a single-broker Kafka that was doing a to-do list's worth of work. Go client, SQL migrations, no broker, no daemon of its own.

git.vinstrup.example/litequeue · v0.3.0 · go 1.22 · postgres 14+ · MIT

stable
toml-diff2025

Semantic diff for config files. Parses both sides into a value tree and compares structure, so reordered keys and reformatted whitespace don't show up as changes — only real differences do. 0.4 finally handles arrays-of-tables ([[table]]) without lying about order, which is the version I actually use in deploy pipelines now. Reads TOML, JSON, and a subset of YAML; exits non-zero on drift so it slots into CI.

git.vinstrup.example/toml-diff · v0.4.1 · go 1.21 · MIT

slowloris-guard2024

A tiny reverse-proxy middleware that drops slow-read and slow-header connections — the Slowloris family — before they exhaust your worker pool. It enforces minimum throughput and a header-completion deadline per connection, nothing more. About 300 lines, no config server, no metrics backend it insists on. I wrote it because the off-the-shelf options wanted to be a whole WAF and I wanted one valve.

git.vinstrup.example/slowloris-guard · v1.1.0 · go 1.20 · net/http middleware · MIT

archived
dotfilesarchived

Years of shell, editor, and tmux config, bootstrapped with a single idempotent install script and GNU stow. Public mostly so I can clone it onto a fresh box in one command — see the Debian 12 migration for why that matters to me. Archived not because it's dead but because it's done: I change it a few times a year and it doesn't need a roadmap.

git.vinstrup.example/dotfiles · neovim · zsh · tmux · stow · public domain