Full-stack web developer and designer with an emphasis on software for people.
My current project. Experiments in unobtrusive software for people.
✉️ Contact
- campfire: a reactive web framework. Chainable DOM builder, reactive stores, no build step, no virtual DOM. Maintained since 2021.
- luacheck-ts: a 22k-line Lua static analyzer ported to TypeScript, so it runs in the browser, Deno, and Node from one codebase.
- stupid-simple-kv: a Rust key-value crate with order-preserving binary tuple keys and pluggable backends.
- ink-editor: a WYSIWYG Markdown editor on CodeMirror 6.
- etu: a time-clock and invoicing CLI for freelancers. I have billed my own contract work with it daily since 2024.
- colle: a pastebin with syntax highlighting, Markdown rendering, and image previews.
- macrolight: a tiny syntax highlighter, a TypeScript rewrite of asvd's microlight.
- wizardkit: build a step-by-step wizard as a Deno script, served as HTML so the same script runs in a browser or a desktop window.
- cf-alert: dialogs built with Campfire.
Talk at bitcoin++ Nairobi, 2026.
- Writers Jam: a weekly writing exercise and anti-social network. 361 posts and over 102,000 views so far. Source.
- COVID-19 Resources: a live-updating resource finder built during India's second wave in 2021, backed by a Google Sheet so non-technical volunteers could keep it current. Source.
- rite and rite-cloud: a distraction-free Markdown editor with a Rust sync service behind it.
- pseudows: a Windows 98 style desktop environment in the browser, with a real window manager and a handful of working applications. Source.





