2026
- Building a multiplayer podcast editor with Automerge
Experience report of building a complex collaborative UI on top of a sync and versioning engine
- Designing a better podcast editor
A better concept model and more efficient tools for editing spoken word audio
2023
- <iframe>able finance
Designing and building embedded UIs
2017
- Pure UI control
If Pure UI gave teams a shared language for display states, what’s the same idea for an interface’s behavior — a case for making control state explicit
- What are the important problems in UI engineering?
Let’s escape the day-to-day to survey what’s coming next
- Preact in pictures
I gave a talk at tonight’s ReactJS Denver meetup about Preact
- Synchronizable abstractions for understandable concurrency
Or: what is Concurrent ML all about?
- Preact internals #3: some fiddly little bits
How the virtual dom actually gets rendered to the DOM
- Preact internals #2: the component model
What makes React’s component model — composable, stateful, declarative — actually work, and how Preact implements both class-based and functional components
- Preact internals #1: the easy parts
An introduction and gentle first steps in a series where we’ll read the Preact codebase and try to completely understand it
2014
- React.js & Om talk
Videos and slides from a two-part introductory talk on React and then Om, given to the DC-area Clojure user group
- Om experience report
First impressions of David Nolen’s Om — a thin ClojureScript wrapper over React — after building a small map-styling app over Christmas
2013
- Constraint programming in the browser
My JSConf 2013 talk on Cassowary in the browser, plus a short reading list on constraint solvers for UI
- Being inspired by Sketchpad
What Ivan Sutherland’s 1963 thesis still has to teach us — method dispatch, prototypical inheritance, and constraint-driven UI
2012
- Stateful views
MV* frameworks handle stateless event bindings well, but drag-and-drop and other multi-step interactions want state machines