Side projects I build and maintain, mostly to learn something or because the tool I wanted did not exist yet. A few of these have their own case studies with more detail on the problem, approach, and outcome.
Whisky Collection API
Rust
Axum
PostgreSQL
A REST API for tracking whisky collections and tasting notes, built with Rust and Axum. It lives in this monorepo with its own toolchain, test harness, and migration-driven PostgreSQL schema. This is the project I use to write real backend Rust — routing, typed extractors, proper error handling — instead of just reading about it. What it taught me: Rust's type system forces decisions about your data shape up front, which is uncomfortable at first and then makes the rest of the code much harder to get wrong.
tools.joostvanderlaan.nl
HTML
Python
uv
Playwright
A growing collection of 180+ standalone HTML tools — each a single page that does one narrow job, with no framework, no bundler, and no client-side build step. A Python/uv script handles the build and Playwright runs the tests. What it taught me: keeping a tool boring is usually the fastest way to end up with something I actually keep using.
Kids Tools
Product design
Zola
Affirmation cards
A product studio for children's affirmation cards: brand assets, design tokens, generation workflows, and a showcase site. The stack and commerce platform are still being chosen, so right now it is a design-and-content workbench rather than a shipped product. What it taught me: treating product decisions (target audience, tone, visual identity) with the same version-control discipline as code keeps the creative side honest.
Home Assistant infra
Home Assistant
YAML
Automation
Declarative configuration for my smart-home setup — automations, scenes, scripts, and blueprints — versioned in this monorepo like any other codebase. What it taught me: treating home automation config with the same review and change-history discipline as application code catches mistakes long before they trip a light switch at 2 AM.
This website
Zola
Tailwind CSS
GitHub Actions
joostvanderlaan.nl itself — a Zola static site with Tailwind CSS layered on top, deployed via GitHub Actions from this monorepo. It includes a mental-models reference section, a merge queue with auto-revert, and a shared agent harness for AI-assisted development. What it taught me: a personal site is a good forcing function for actually finishing small things end-to-end, from content to CSS to CI, instead of leaving them half-done.