MinimalWebView and related projects

An experiment to see how far I can push a slim Windows application that uses C# for the hosting logic and web UI for the front-end.

I could embed web UI in a plain old .NET GUI app. But WinForms and WPF are big dependencies and they’re mostly unnecessary for web UI. Why not see how far we can get with an old-school Win32 message pump?

ReiTunes (GitHub)

My personal music library system with a local-first Windows client and Linux server. It started out as a bored-during-the-pandemic project and now I use it daily.

The local-first functionality was a huge source of complexity; the library is essentially a distributed database that can be synchronized between any 2 clients (or a client and the server). But it works great. 👌

Vancouver Rezoning Scraper (GitHub)

An overengineered tool to keep tabs on rezoning and development applications in Vancouver. Distributed as a single-file executable for Linux, macOS, and Windows. Uses SQLite to store data and optionally publishes new+updated applications to Slack.

I wanted to explore UI ideas for ETL. Can we make complex data transformations as easy to use as spreadsheets? What if we had tools to quickly diagnose+fix common issues in data pipelines?

To answer those questions, I built an interactive prototype in React that parses JS formulas as they’re edited. More info here.

Rust Toys

Here’s a CLI tarball utility and a silly procedural macro that enforces coding deadlines.

This Website (GitHub)

Built using Hugo, Tailwind CSS, and an obsessive emphasis on performance. You can read more about it here. It has a dark mode using the new prefers-color-scheme media query and the Solarized colour scheme, because I love Solarized Dark.

Abundant Housing Vancouver Letter System

  1. An Angular front-end that generates personalized letters in support of housing projects
  2. A Serverless Framework back-end that uses Slack and AWS (Lambda, SES, S3, Athena) to review+send+analyze those letters

I wrote the front-end and Roman Lisagor wrote the initial version of the back end, but now I work on both. It’s been used over 1000 times, and most recently it was adopted by the BC Non-Profit Housing Association for their Build Homes Not Barriers campaign. More info here.

This started out small, as a tiny C# and WPF urban planning tool to help me visualize the impact of setback and lot size requirements on individual properties. Eventually I rewrote it using the HTML5 Canvas element, and after that I realized that I might as well scale it to entire neighbourhoods

I built an interactive map of every property in Vancouver using Mapbox, Eric Fischer’s remarkable Tippecanoe, and a Heroku app to serve the map tiles.

Warning: there is a bug in Tippecanoe that makes the map look a little wonky at lower zoom levels and the free Heroku tier takes ~10s to serve map data.

Everything Else

Drop by GitHub to see what else I’ve been up to lately.


Cities & Code

Things that don't quite fit in 280 characters.

Top Categories

View all categories


I'm a programmer in Vancouver, Canada. I'm interested in databases, urban planning, computing history, and whatever else catches my fancy.

Learn More / Contact me