Ryanair dark UX patterns summer 2026 refresher
Ryanair are Europe’s most profitable airline and they are masters of this noble form.
Online ad giant Adform was hacked, proving once again why ad blockers are needed
The hacked digital advertiser was caught serving malicious ads that allowed hackers to steal a victim's cryptocurrency.
Type-safe HTML templating in Zig
I’ve done a lot of web development over the years. I started around the year 2000, just after PHP 3.0 was released and started taking over the web world. I’ve used all kinds of approaches for generating HTML: raw PHP, string concatenation in Python, Smarty templates in PHP, Template Toolkit in Perl, and Jinja/Django…
If you want to create a button from scratch, you must first create the universe
A concrete example of why using native HTML as much as possible is better than slapping ARIA on top of things.
The Valley of Webhooks
I've built the same webhook consumer three times at three companies. The fourth time, I want a better primitive.
How to make a damn website (2024)
A lot of people want to make a website but don’t know where to start or they get stuck. That’s in part because our perception of what websites should be has changed so dramatically over the last 20 years.
The advertising cartel coming to your web browser
The three companies (along with Mozilla, which is on one of their “ad features in the browser” kicks again) are drawing up a built-in advertising measurement system, called Attribution Level 1 , as a standard feature of web browsers. The system is intended to measure the effectiveness of advertising by enabling…
Antiquated HTML Snippets and Artefacts
We can mostly blame Internet Explorer, as always.
I joined the IndieWeb, here's what I learned
Driven by curiosity, I decided to find out what the IndieWeb tag that kept showing up on some blogs and Mastodon toots was all about. I quickly…
The death of web development education
Rescuing a field from disappearing
The asteroid currently hitting front end web development
A lot of the educators I admire in the frontend web space seem to be either bowing out or dialing back their efforts: Axel Rauschmayer, Salma Alam-Naylor, Josh…
Tooltips need a delay, and then they need to skip it
Thinking about UX, a slight delay on a simple tooltip can be nice so that mousing over something quickly doesn't trigger it, but if there are related tooltips nearby, maybe we don't need to wait.
Where did the old web go? We followed 657,607 links to find out
A complete crawl of every restored link from 2009 to 2014 found that 76.7% no longer return a loading page.
The End of Eleventy
Build Awesome is a rebrand of 11ty/Eleventy, backed by a successful $40k Kickstarter. But this attempt to monetize static site generators repeats the same …
We know 15k websites are infected. how do we tell them?
We've identified 15,579 websites that are currently infected with malicious JavaScript and between them, we conservatively estimate that they receive more than 135 million visits every month. We know they're infected, and we have the evidence to back that up, but there's a problem: how on
Web Security is Too Hard
It started innocently enough. I saw a tweet about a new product offering from one of my favorite companies, Cloudflare. Neat! I clicked through to the site and there it is: And huzzah!, my preferre…
Light Mode InFFFFFFlation
Back in the day, light mode wasn’t called “light mode”. It was just the way that computers were, we didn’t really think about turning everything light or dark. Sure, some applications were often dark (photo editors, IDEs, terminals) but everything else was light, and that was fine. What we didn’t notice is that light…
CSS Optical Illusions
A collection of 50+ optical illusions coded with CSS and HTML. :: Blog post at Alvaro Montoro's Personal Website.
Slightly reducing the sloppiness of AI generated front end
I've been trying to make progress on a herculean task; I want decent looking programs for personal use which I can generate quickly using AI agents yet I'm a person without taste controlling an AI without taste. I found "one weird trick" that does enough for me, the results are not extra nice but it doesn't make me…
Like Game-of-Life, but on Growing Graphs, with WASM and WebGL
Experimental simulation of emergent complexity through graph-rewriting automata.
Claude is an Electron App because we've lost native
Article argues that Claude is not an Electron app not because LLMs can’t do it, but because there are no advantages left for native
GBC Boot Animation 88×31 Web Button
My little corner of the internet.
Modern email can be built from borrowed parts
Let's design the successor to email on top of HTTP, fixing the design flaws SMTP has been dragging along for 40 years. Piece by piece. The goal is…
Removing Next.js Got My Blog to 100 on Every Lighthouse Category
My blog just scored a perfect 100 on every Lighthouse category. I love blogging. I wanted to build a blog that’s light, fast, free of clutter, able to run multiple blogs, and fully accessible on top of that. And finally, at long last, I’ve more or less pulled it off. It was quite a tedious proces...
Progressive Web Components
Introducing Elena, a simple, tiny library for building Progressive Web Components.
Don't verify email addresses by sending spam to them
Much have been said about futility of trying to validate email addresses. Generally accepted advice is that you should just send verification link and don’t care about trying to validate it beforehand.
CodePen 2.0
Noting perhaps my largest personal career accomplishment, which is launching CodePen 2.0. Far more work, believe it or not, than the entire creation of the original CodePen. This isn’t the pl…
The Web Is More Than Enough
Web browsers enable incredibly rich app development—and that’s radically easier than it used to be.
All my clients wanted a carousel, now it's an AI chatbot
Posts about SmolWeb, Gemini protocol and LowTech