01 — projectsprojecten

ProjectsProjecten

Projects I built myself, because I needed them. From Python tools to a design system in TypeScript. All of it is open source.Projecten die ik zelf heb gebouwd, omdat ik ze nodig had. Van Python-tools tot een design system in TypeScript. Alles is open source.

lintje

2026

The Rijkshuisstijl as web components, for applications as well as websites. Most component libraries stop at content pages; I also needed what an application is made of: charts, a side navigation, a dark mode that holds up everywhere and animation that feels right. Designed in Claude Design, with WCAG AA as the floor, and every component checked by axe in three browsers — light and dark, desktop and phone.De Rijkshuisstijl als webcomponenten, voor applicaties én websites. De meeste componentbibliotheken houden op bij contentpagina's; ik had ook nodig waar een applicatie uit bestaat: grafieken, een verticale navigatie, een dark mode die overal klopt en animaties die goed aanvoelen. Ontworpen in Claude Design, met WCAG AA als ondergrens, en elk component door axe gecontroleerd in drie browsers — licht en donker, desktop en telefoon.

typescriptlitweb-componentswcag

kobo2readwise

2026

Highlights from sideloaded Kobo books live only in the device's local SQLite and never touch the cloud, so Readwise can't fetch them. The known fix is a desktop app (October); I did it in the browser instead — read KoboReader.sqlite with sql.js over the File System Access API and forward the highlights through a stateless proxy that forgets your token.Aantekeningen uit zelf-geüploade Kobo-boeken staan alleen in de lokale SQLite van het apparaat en bereiken de cloud nooit, dus Readwise kan ze niet ophalen. De bekende oplossing is een desktop-app (October); ik deed het in de browser — KoboReader.sqlite lezen met sql.js via de File System Access API en de aantekeningen doorsturen via een stateless proxy die je token vergeet.

pythonfastapisqlitewasm

online-bibliotheek-catalogus

2026

The official onlinebibliotheek.nl search drove me up the wall, so I scraped the whole catalog into SQLite + FTS5 and gave it the fast, faceted search it deserved. Enumerate, parse, normalize with an atomic rebuild, rank with bm25.De officiële zoekfunctie van onlinebibliotheek.nl dreef me tot wanhoop, dus schraapte ik de hele catalogus naar SQLite + FTS5 en gaf 'm de snelle, gefacetteerde zoekfunctie die-ie verdient. Enumereren, parsen, normaliseren met een atomische rebuild, ranken met bm25.

pythonfastapisqlitefts5

firm

2026

I wanted Rails 8's Solid stack in Python, so I built it. Background jobs, caching, pub/sub, and an append-only audit log that all live in the SQL database you already run — no Redis. Four independent modules; SQLite, PostgreSQL, and MySQL.Ik wilde de Solid-stack van Rails 8 in Python, dus bouwde ik 'm. Achtergrondtaken, caching, pub/sub en een append-only auditlog die allemaal in de SQL-database draaien die je toch al hebt — geen Redis. Vier onafhankelijke modules; SQLite, PostgreSQL en MySQL.

pythonpostgressqlitemysql