Jim Nielsen’s Blog
Study Finds Obvious Truth Everybody Knows
Saying “No” In an Age of Abundance
The Browser’s Little White Lies
The Don’t “Contact Us” Page
You Can Just Say No to the Data
CTA Hierarchy in the Wild
New Year, New Website — Same Old Me
Easy Measures Doing, Simple Measures Understanding
In The Beginning There Was Slop
The AI Security Shakedown
Creating “Edit” Links That Open Plain-Text Source Files in a Native App
A Letter of Feedback To Anyone Who Makes Software I Use
To Make Software Is To Translate Human Intent Into Computational Precision
Leading Global Research and Advisory Firm Recommends Against Using AI Browsers
You Might Also Like: My Notes Blog
The “A” in “AI” Stands For Amnesia
It’s Uncomfortable To Sit With “I Don’t Know”
Icons in Menus Everywhere — Send Help
Grow, Like a Tree Not a Cancer
Malicious Traffic and Static Sites
Notes From an Interview With Jony Ive
My Number One “Resource Not Found”
Podcast Notes: Feross Aboukhadijeh on The Changelog
Data Storage As Files on Disk Paired With an LLM
Tahoe’s Terrible Icons: The B-Sides
Leveraging a Web Component For Comparing iOS and macOS Icons
Down The Atomic Rabbit Hole
Browser APIs: The Web’s Free SaaS
Don’t Forget These Tags to Make HTML Work Like You Expect
Everything Is Broken
AI Browsers: Living on the Frontier of Security
Write Code That Runs in the Browser, or Write Code the Browser Runs
Research Alt
Social Share Imagery via a Data Attribute
Doing It Manually
Running Software on Software You’ve Never Run
The Risks of NPM
Anti-*: The Things We Do But Not All The Way
RIP “Browsers”
Why Make a Website in 2025?
The Mac App Flea Market
Some Love For Python
Trying to Make Sense of Casing Conventions on the Web
Successive Prototypes Bridge the Gap Between Idea and Reality