Mozilla's latest quagmire
Defending Mozilla’s inclusion of AI features and tooling in Firefox misses the point, and only threatens to isolate them further.
I built the same app 10 times: Evaluating frameworks for mobile performance
I needed to choose a framework for a mobile-first app at work. I started comparing Next.js, SolidStart, and SvelteKit, then expanded to 10 frameworks. The measurements revealed dramatic differences in bundle sizes, performance, and the real cost of framework choices.
DoubleClickjacking: A New type of web hacking technique
data:blog.metaDescription
Build a link blog like Simon Willison
Achieving Data Freedom Through Open Source and Rust
Why is GitHub UI getting slower?
Matyáš Racek's blog
<Blink> and <Marquee> (2020)
Dan explores the history of two (much-maligned) HTML tags of the yesterweb. With blinking marquees!
Mac Themes Garden
A website for old Macintosh themes and some background.
Discovering the indieweb with calm tech
Blog Quest and StreetPass help you discover the independent web
Window Activation
You click a link in your chat app, your browser with a hundred tabs comes to the front and opens that page. How hard can it be? Well, you probably know by now that Wayland, unlike X, doesn’t let one application force its idiot wishes on everyone else. In order for an application to bring its window to the front, it…
Look, Another AI Browser
Yesterday, OpenAI announced Atlas, its AI browser. To the surprise of literally nobody, it’s Chromium with AI slapped on top. Perplexity also has a …
Why the open social web matters now
The needs are real – and you have so much power.
30 years of <br> tags
Three decades of making things on the internet
This website has no class
Going “full CSS Zen Garden” with modern CSS.
AMP and why emails are not (and should never be) interactive
Google's AMP for Email promised interactive, dynamic messages. Why senders and email clients rejected it, and why email should never be interactive.
A flowing WebGL gradient, deconstructed
An introduction to writing WebGL shaders using gradient noise and cool math.
The time is right for a DOM templating API
Update: See my follow up post, What should a native DOM templating API look like? .
Selfish reasons for building accessible UIs
All web developers know, at some level, that accessibility is important. But when push comes to shove, it can be hard to prioritize it above a bazillion other…
Knowing CSS is mastery to front end development
There are countless articles why developers should not focus on Frameworks too much and instead learn to understand the underlying languages. But I think rarely we can find good reasons except that Frameworks come and go. To me, the main reason is different: You won’t be a master at frontend development if you don’t…
Incapacitating Google Tag Manager (2022)
Drilling beneath the hype to expose the truth
The FAIR Package Manager: Decentralized WordPress infrastructure
In December, I wrote about the state of leadership in the WordPress ecosystem. I shared how too much power rests with one person, and how the lack of transparen
Disable AI in Firefox
Quick reference for how to turn off AI features in Firefox
Aggressive bots ruined my weekend
The web-scraping arm race continues
JSDoc is TypeScript
In May of 2023 an internal refactoring PR from the Svelte repo made it to the front page of the Hacker News forums. The (superficially) controversial PR seem...
Deno's Decline
The one where I nosey through rather telling git commits
Fifty problems with standard web APIs in 2025
Recently, I made a free game . It's a little mystery investigation game which I was inspired to write after enjoying games like Case of the Golden Idol , Roottrees are Dead , and Return of the Obra Dinn . I thought my UX ideas were pretty simple, so I decided to implement it in HTML5 .