Why Judging APIs by Syntax is Misleading You

APIs often behave very differently underneath. What matters is not just how an API looks on the surface, but also the abstraction layer it belongs to.

Read more →

Zero is Not Local-First. It's Better.

Zero's partial sync approach gives us more control, better performance, and fewer headaches when building apps with lots of data. Here's why, and how I've been using it.

Read more →

A Future for Web Components Without Shadow DOM

There’s been a lot of buzz around Web Components (WCs) lately. Are the APIs to blame, or are our expectations simply misguided?

Read more →

Challenging Established Norms: Making Component Fetching the Exception

Initially, integrating data concerns within our components appeared intuitive to me and simplified the developer experience. However, I eventually found reasons to treat it as a last resort.

Read more →

Progressively Enhance for a More Resilient Web

There has been a lot of talk on the socials lately about progressive enhancement. Some good, some bad, and while the bad is often misled I get it.

Read more →

Avoid Global State, Co-locate with Uncontrolled Compound Components

Over the years, I've thought a lot about colocation and how to effectively apply this principle to the components I build. I began to notice a pattern emerge in my work and I'd like to share it.

Read more →

Are You a Component Control Freak?

It's tempting to always control the components we implement but we can sometimes simplify things if we use the uncontrolled pattern.

Read more →

Smarter, Dumb Breadcrumb

With the help of React Context and Portals we can utilise the component tree to generate a breadcrumb trail that doesn't know your hierarchy or your location within it.

Read more →

Compound Components

Compound components provide a declarative API that can allow for some impressive solutions to everyday problems. But what are they?

Read more →
© 2025