This month marks 10 years that I’ve been paid to build web user interfaces. And today is the second anniversary of Guillermo Rauch’s essay Pure UI. Those two anniversaries have led me to reflect on the past and future of UI development.

The past 10 years has seen major improvements…


Thanks to an extended holiday vacation and some family illnesses, I was lucky enough to spend two weeks reading about how people and teams learn. It was really interesting.

Why read about learning?

A few months ago, I started working at Stripe. It has felt like Neo getting plugged into the training modules. Except…


Let’s escape the day-to-day to survey what’s coming next

Very early in my programming career, I read a transcript of the talk “You and Your Research”, by Richard Hamming, a mathematician whose name appears in the title of at least six Wikipedia pages for important things he invented.

I was struck by a question which he persistently asked of…


I gave a talk at tonight’s ReactJS Denver meetup about Preact.

  • Part 1 describes Preact, why you might want to use it, and the tradeoffs you have to make by not using full React.
  • Part 2 walks through what Preact is doing internally to render and diff a simple application…


Or: what Souders’ books didn’t tell you because it only happened in the last two years.

(This is a blog version of a presentation I gave at work a few weeks ago. Because I talked about a couple internal-only things, I can’t put up the video, but I hope it is worthwhile to share the slides and some notes.)

The New Fast

This presentation is focused on bringing you…


And some suggestions from a complete outsider

Yesterday I published a post arguing that more programmers should learn about Concurrent ML. Especially for UI development, CML offers better abstractions and some ready-made solutions for problems that are currently hard or ugly to solve.

But experts in this material may have noticed something odd about my post: I…


Or: what is Concurrent ML all about?

In this post I’d like to introduce you to a powerful idea for thinking about concurrent programs. Synchronizable abstractions were developed more than twenty years ago by John Reppy in his work creating the language Concurrent ML. …


How the virtual dom actually gets rendered to the DOM

So far in this series, we’ve gotten a feel for the Preact repo and looked at the component model from a high level. When we left off last time, we had just finished our picture of the muturally-recursive process of diffing virtual DOM trees and rendering components:

And we had…


What distinguishes the React component model, the difference between functional and class-based components, and an overview of how it all works.

In the first post in this series, we started to build a mental model of the Preact codebase, explored some fringe code for utilities and global options, and saw how JSX becomes virtual dom trees. …


An introduction and gentle first steps in a series where we’ll read the Preact codebase and try to completely understand it.

About the series

I assume you are already familiar with the React component model and virtual dom rendering. A first React book or online course should be enough background. I also assume you know what Preact is and are interested in it either to make your applications load faster or just because you…

Adam Solove

Building the web. Everything should be faster.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store