Listed below are articles in chronological order. You might want to explore topics instead. There’s also a web feed for latest articles.

Theming with Constructed Style Sheets

Constructable Style Sheets are useful to inject and control styles via JavaScript.

Augmenting JavaScript with Static Typing

As we’ve learned from the brouhaha around Svelte’s use of TypeScript, JSDoc makes it possible to write plain JavaScript while getting the benefits of static typing.

Encrypted Web Documents

There are many options these days for securely sharing sensitive data, but they typically require some kind of shared infrastructure. Sometimes all you can rely on is the web.

From HTML to DOM Nodes

Every once in a while, I need to turn HTML strings into DOM nodes. The mechanisms for doing so are less than obvious and nuanced.

Client-Side Secrets with Web Crypto

Reading about Excalidraw’s end-to-end encryption a while back piqued my interest: Given my TiddlyWiki background, the idea of using a server to exchange sensitive data without exposing details to anyone else seemed compelling.

Perils of View Transitions

View transitions are excellent, but might block concurrent animations as well as interactions while transitioning.


This article was updated a week after publication to include helpful comments from Mr. View Transitions himself, Jake Archibald, who was kind enough to respond in private.

Signals for Reactivity

Having been roped into dealing with the excesses of RxJS lately, I’d been wondering about Angular folks’ excitement about signals. So I finally sat down in an effort to understand the furor.

Banishing npm

npm is slow, unwieldy and unsafe. Deno can now serve as a drop-in replacement for front-end development environments.


being sent to the dictionary is a gift

Creative Privacy

Allowing users to tinker in private is essential to enabling creativity.

Streaming HTML

Browsers begin rendering HTML even before the document has been fully downloaded, which can greatly improve perceived performance. Servers can support such progressive rendering by emitting partial HTML chunks as soon as possible.

Lazy Custom Elements: An Undercover Primer

At face value, An Approach to Lazy Loading Custom Elements appears to propose a solution for on-demand loading of web components. It’s actually subtle propaganda for custom elements.

Lightweight HTML Templating with JavaScript

Sometimes I need to generate HTML without relying on external dependencies.

Seizing the Means of Transclusion

After years of advocating transclusion as a simple and effective integration mechanism, we’ve identified patterns and pitfalls worth considering.

churnal: Digestible News

In ruminations on how async-first communication could and should work within a rapdily growing team, I had concluded that unidirectional broadcasting of significant developments can provide tremendous value, if done well.

Data URIs

The data: URI scheme is an underappreciated trick for virtual files.

HTTP Caching 101

After repeatedly teaching the basics of HTTP caching in an ad-hoc fashion, I decided it was worth briefly summarizing the fundamental mechanisms.

Cheating God

happy to help – it’s simple math: I spend 5 min. to save you 60

in the grand scheme of things, we just cheated god

Progressive Web Components

This is a write-up of the “Progressive Web Components” presentation at GOTO Berlin.

Bugs Are Good

Bugs are an opportunity for the community to reveal itself.

"JSON is faster"

Discussing isomorphic JavaScript at dotJS, I questioned the value of client-side templating – and was confronted once again with the “but … JSON is faster!?” assertion.