Devlog
RSSNotes on whatever I'm building at the moment.
10
Posts
20
Tags
Jul 21, 2026
Latest post
Jul 21, 2026 · 5 min read
Building /notes as a force-directed graph, then rebuilding it for mobile
A canvas full of notes connected by springs is a fine idea for a mouse and a keyboard. It has nothing to say to a phone — so the mobile version isn't a responsive tweak, it's a second app sharing one state tree.
- notes
- sqlite
- svelte
- ui
Jul 20, 2026 · 3 min read
A media library, an admin area that feels like one, and backups that diff
Three admin-area gaps that all trace back to the same root cause — nothing here persisted or gave feedback the way it should — and the git-based backup job that ties them together.
- admin
- sqlite
- backups
- media
Jul 20, 2026 · 2 min read
A weekly heatmap, a project lightbox, and swapping a callout for a sparkline
Three small, unrelated features shipped together, tied by the same idea — once data already lives in SQLite, another way to look at it is just another query.
- listens
- spotify
- sqlite
- ui
Jul 20, 2026 · 4 min read
Turning /newtab into an actual dashboard
A browser new-tab page needs to survive being reopened fifty times a day — that constraint shaped everything from the background photo cache to the layout system more than any feature idea did.
- newtab
- sqlite
- unsplash
Jul 18, 2026 · 3 min read
The whole Watchlist page, built in a day
Simkl's bulk sync call doesn't carry genres, overviews, or runtimes — getting those without hammering a per-title endpoint on every load meant a small self-warming cache, plus a full-library snapshot to survive an outage.
- watchlist
- simkl
Jul 18, 2026 · 3 min read
Building /listens from a Spotify data export instead of an API
Spotify's API only gives you the last ~50 plays. Getting real history — and years of stats out of it — meant starting from my own data export instead.
- spotify
- listens
- sqlite
Jul 16, 2026 · 2 min read
Giving Projects the same treatment as the devlog
The projects page was a hardcoded array with one entry. Now it's markdown, like everything else here.
- sveltekit
- projects
Jul 16, 2026 · 2 min read
Two things the Dockerfile had to get right
pnpm's autoInstallPeers quietly defeats a --prod reinstall, and node:22-slim ships without curl for the HEALTHCHECK to shell out to.
- docker
- deployment
Jul 10, 2026 · 2 min read
Picking a design system for a one-person site
Why this site borrows RG Digital's dark/near-black look, swaps the accent to cyan, and how one token file covers both light and dark mode.
- design
- tailwind
Jun 1, 2026 · 1 min read
Hello, world
First post on the new devlog — how this site is built and why it exists.
- meta
- sveltekit