Web Development
Modern web development techniques, frameworks, and best practices for building fast, accessible websites.
9 Articles
The Case for a Virtual File System in Node.js
Try to run a Node.js application without a real filesystem and watch how quickly it falls apart. require() reads files. fs.readFile() reads files. Template...
Collaborative Editing Is Harder Than You Think
Google Docs handles real-time collaborative editing for millions of users. It looks effortless — you type, your cursor moves, your collaborator's edits appear...
The Art of Dithering: Beautiful Images With One Bit
Lucas Pope's Return of the Obra Dinn is one of the most visually striking games ever made, and it uses exactly two colors: black and white. One bit per pixel....
Scroll Fade Is a UX Antipattern and You Should Stop Using It
You've seen it on every marketing site, SaaS landing page, and portfolio built in the last five years. You scroll down the page and content fades in from...
The Worst UX Anti-Patterns and How to Fix Them
Last week I tried to adjust the cookie preferences on a major airline's website. The 'Accept All' button was a bright blue, impossible to miss. The 'Manage...
The Small Web Is the Best Part of the Internet
Open a browser tab and navigate to any major website. You'll see the same thing: cookie consent banners, newsletter pop-ups, autoplaying videos,...
When WebAssembly Isn't Faster Than JavaScript
Last month I spent a Saturday rewriting a Rust-to-WASM image metadata parser in TypeScript. The WASM version had been in production for eight months. It worked...
Every Layer of Review Makes Your Team Slower
A startup ships a bug to production. Management's response: add a code review requirement. Another bug slips through. Response: require two reviewers. Then a...
Pyodide: Running Real Python in the Browser via WebAssembly
Python in the browser has been a dream since the early 2010s, and every attempt has had the same problem: Python is too deeply tied to CPython's C runtime to...