Blog
all posts24 tags
- Vitre - Handing the Page to an Agent (Part 3)
Snapshots and handles, an MCP server that ships no socket, and four sites driven at once
- Vitre - One Thread, Many Callers (Part 2)
The concurrency model that turned out to be the whole library, and the async bridge that had a forgery hole in it
- Vitre - Driving a WebView Instead of Scraping It (Part 1)
Turning a page into something you can drive, with one step vocabulary across Android, iOS and the desktop
- An fsspec Filesystem for Epic's Lore
Bridging a brand-new content-addressed VCS to the Python data ecosystem
- Self-Hosted CI on Railway (and a MacBook Air)
Moving GitHub Actions off hosted runners and GitHub's cache for near-free CI
- Personal Monorepo and Agentic Engineering
Consolidating projects for humans and AI agents alike
- Making a simple dashboard with HTMX
HTMX + FastAPI
- Client-side Scraping with Webview - Part 1
Delegate your scraping need to the client
- Trying out the Multiplatform Compose
One framework to rule them all
- Hypermedia Systems + Kotlin
Back to the future
- You are (probably) using JWT wrong
Many services are adopting JWT as their authentication and authorization method. What are the caveats?