Inkantate
PersonalA reading companion for physical books. Point your phone at a word and it's kept with the sentence you found it in, so recall comes from your own reading rather than a flashcard. Local-first.
- Expo
- React Native
- TypeScript
- SQLite
I build backend systems and the occasional tool I wish existed. This site is where I keep projects, writing, and a running log of what I'm reading.

A reading companion for physical books. Point your phone at a word and it's kept with the sentence you found it in, so recall comes from your own reading rather than a flashcard. Local-first.
A twelve-container media stack on one old laptop: Jellyfin and Audiobookshelf for playback, the *arr services for library management, and a Cloudflare tunnel for access without a routable address.
Twelve containers on a 2017 Dell Inspiron that had sat unopened for three years. What the path layout has to look like, why the auto-updater is commented out, and why the certificate setup I built first got thrown away.
A relative's phone had an app on it that could not be uninstalled, could not be found by name, and blocked a factory reset. Finding it meant searching by what it could do rather than what it was called.
Managing several SSH keys on one machine gets much simpler once you stop thinking about keys and start inventing hostnames.