Jim Nielsen’s Blog
Subscribe
Archives
blog.jim-nielsen.com — Browser APIs: The Web’s Free SaaS
November 3, 2025
Authentication on the web is a complicated problem. If you’re going to do it yourself, there’s a lot you have to take into consideration. But odds are,...
blog.jim-nielsen.com — Don’t Forget These Tags to Make HTML Work Like You Expect
October 27, 2025
I was watching Alex Petros’ talk and he has a slide in there titled “Incantations that make HTML work correctly”. This got me thinking about the basic...
blog.jim-nielsen.com — Everything Is Broken
October 25, 2025
Chris Coyier wrote about it. Now it’s my turn. Last week I’m flying home. My flight gets delayed in air, then lands late so I miss my connecting flight…...
blog.jim-nielsen.com — AI Browsers: Living on the Frontier of Security
October 23, 2025
OpenAI released their new “browser” and Simon Willison has the deets on its security, going point-by-point through the statement from OpenAI’s Chief...
blog.jim-nielsen.com — Write Code That Runs in the Browser, or Write Code the Browser Runs
October 20, 2025
I’ve been thinking about a note from Alex Russell where he says: any time you're running JS on the main thread, you're at risk of being left behind by...
blog.jim-nielsen.com — Research Alt
October 11, 2025
Jeremy imagines a scenario where you’re trying to understand how someone cut themselves with a blade. It’d be hard to know how they cut themselves just by...
blog.jim-nielsen.com — Social Share Imagery via a Data Attribute
October 7, 2025
I’ve done something few on the internet do. I’ve changed my mind. A few posts on my blog have started to unfurl social share imagery. You might be wondering,...
blog.jim-nielsen.com — Doing It Manually
October 2, 2025
I have a standing desk that goes up and down via a manual crank. I’ve had it for probably ten years. Every time I raise or lower that thing, it gets my blood...
blog.jim-nielsen.com — Running Software on Software You’ve Never Run
September 29, 2025
I love a good look at modern practices around semantic versioning and dependency management (Rick Hickey’s talk “Spec-ulation” is the canonical one I think...
blog.jim-nielsen.com — The Risks of NPM
September 23, 2025
There was a time when I could ask, “Did you see the latest NPM attack?” And your answer would be either “Yes” or “No”. But now if I ask, “Did you see the...
blog.jim-nielsen.com — Anti-*: The Things We Do But Not All The Way
September 22, 2025
I was reading Chase McCoy’s article “Antibuildings” where he cites Wikipedia’s entry on the term “Antilibrary” which points to another entry about the...
blog.jim-nielsen.com — RIP “Browsers”
September 18, 2025
Richard MacManus just posted “Chrome Switches on AI: The Future of Browsing Begins Now” where he points out that what we think of today as “browsers” is...
blog.jim-nielsen.com — Why Make a Website in 2025?
September 16, 2025
The same reason you would bake a batch of cookies: because you enjoy it — the process itself, but also the result. And perhaps, if you like, you share the...
blog.jim-nielsen.com — The Mac App Flea Market
September 15, 2025
Have you ever searched for “AI chat” in the Mac App Store? I have. It’s like strolling through one of those counterfeit, replica markets where all the goods...
blog.jim-nielsen.com — Some Love For Python
September 8, 2025
I really enjoyed watching Python: The Documentary (from CultRepo, formerly Honeypot, same makers as the TypeScript documentary). Personally, I don’t write...
blog.jim-nielsen.com — Trying to Make Sense of Casing Conventions on the Web
September 4, 2025
(I present to you my stream of consciousness on the topic of casing as it applies to the web platform.) I’m reading about the new command and commandfor...
blog.jim-nielsen.com — Successive Prototypes Bridge the Gap Between Idea and Reality
August 25, 2025
Dismissing an idea because it doesn’t work in your head is doing a disservice to the idea. (Same for dismissing someone else’s idea because it doesn’t work...
blog.jim-nielsen.com — Consistent Navigation Across My Inconsistent Websites, Part II
August 20, 2025
I refreshed the little thing that let’s you navigate consistently between my inconsistent subdomains (video recording). Here’s the tl;dr on the update: I had...
blog.jim-nielsen.com — Bottomless Subtleties
August 18, 2025
Jason Fried writes in his post “Knives and battleships”: Specific tools and familiar ingredients combined in different ratios, different molds, for different...
blog.jim-nielsen.com — Just a Little More Context Bro, I Promise, and It’ll Fix Everything
August 15, 2025
Conrad Irwin has an article on the Zed blog “Why LLMs Can't Really Build Software”. He says it boils down to: the distinguishing factor of effective...
blog.jim-nielsen.com — Choosing Tools To Make Websites
August 14, 2025
Jan Miksovsky lays out his idea for website creation as content transformation. He starts by talking about tools that hide what’s happening “under the hood”:...
blog.jim-nielsen.com — Sit On Your Ass Web Development
August 11, 2025
I’ve been reading listening to Poor Charlie’s Almanack which is a compilation of talks by Charlie Munger, legendary vice-chairman at Berkshire Hathaway. One...
blog.jim-nielsen.com — Writing: Blog Posts and Songs
August 6, 2025
I was listening to a podcast interview with the Jackson Browne (American singer/songwriter, political activist, and inductee into the Rock and Roll Hall of...
blog.jim-nielsen.com — A Few Things About the Anchor Element’s href You Might Not Have Known
August 4, 2025
I’ve written previously about reloading a document using only HTML but that got me thinking: What are all the values you can put in an anchor tag’s href...
blog.jim-nielsen.com — How to Make Websites That Will Require Lots of Your Time and Energy
July 28, 2025
Some lessons I’ve learned from experience. 1. Install Stuff Indiscriminately From npm Become totally dependent on others, that’s why they call them...
blog.jim-nielsen.com — Occupation and Preoccupation
July 17, 2025
Here’s Jony Ive in his Stripe interview: What we make stands testament to who we are. What we make describes our values. It describes our preoccupations. It...
blog.jim-nielsen.com — Measurement and Numbers
July 14, 2025
Here’s Jony Ive talking to Patrick Collison about measurement and numbers: People generally want to talk about product attributes that you can measure easily...
blog.jim-nielsen.com — Computers Are a Feeling
July 11, 2025
Exploring diagram.website, I came across The Computer is a Feeling by Tim Hwang and Omar Rizwan: the modern internet exerts a tyranny over our imagination....
blog.jim-nielsen.com — Follow Up: An Analysis of YouTube Links From The White House’s “Wire” Website
July 7, 2025
After publishing my Analysis of Links From The White House’s “Wire” Website, Tina Nguyen, political correspondent at The Verge, reached out with some...
blog.jim-nielsen.com — Do You Even Personalize, Bro?
July 7, 2025
There’s a video on YouTube from “Technology Connections” — who I’ve never heard of or watched until now — called Algorithms are breaking how we think. I...
blog.jim-nielsen.com — Setting Element Ordering With HTML Rewriter Using CSS
July 2, 2025
After shipping my work transforming HTML with Netlify’s edge functions I realized I have a little bug: the order of the icons specified in the URL doesn’t...
blog.jim-nielsen.com — An Analysis of Links From The White House’s “Wire” Website
June 30, 2025
A little while back I heard about the White House launching their version of a Drudge Report style website called White House Wire. According to Axios, a...
blog.jim-nielsen.com — Transforming HTML With Netlify Edge Functions
June 25, 2025
I’ve long wanted the ability to create custom collections of icons from my icon gallery. Today I can browse collections of icons that share pre-defined...
blog.jim-nielsen.com — Little Swarming Gnats of Data
June 24, 2025
Here’s a screenshot of my inbox from when I was on the last leg of my flight home from family summer vacation: That’s pretty representative of the flurry of...
blog.jim-nielsen.com — My Copy of The Internet Phone Book
June 23, 2025
I recently got my copy of the Internet Phone Book. Look who’s hiding on the bottom inside spread of page 32: The book is divided into a number of categories...
blog.jim-nielsen.com — Becoming an Asshole
June 15, 2025
This post is a secret to everyone! Read more about RSS Club. I’ve been reading Apple in China by Patrick McGee. There’s this part in there where he’s talking...
blog.jim-nielsen.com — The Continuum From Static to Dynamic
June 11, 2025
Dan Abramov in “Static as a Server”: Static is a server that runs ahead of time. “Static” and “dynamic” don’t have to be binaries that describe an entire...
blog.jim-nielsen.com — The Web as URLs, Not Documents
June 10, 2025
Dan Abramov on his blog (emphasis mine): The division between the frontend and the backend is physical. We can’t escape from the fact that we’re writing...
blog.jim-nielsen.com — Some Miscellaneous Thoughts on Visual Design Prodded By The Sameness of AI Company Logos
June 6, 2025
Radek Sienkiewicz in a funny-because-its-true piece titled “Why do AI company logos look like buttholes?“: We made a circular shape [logo] with some angles...
blog.jim-nielsen.com — Notes from Andreas Fredriksson’s “Context is Everything”
June 4, 2025
I quite enjoyed this talk. Some of the technical details went over my head (I don’t know what “split 16-bit mask into two 8-bit LTUs” means) but I could...
blog.jim-nielsen.com — Is It JavaScript?
June 2, 2025
OH: It’s just JavaScript, right? I know JavaScript. My coworker who will inevitably spend the rest of the day debugging an electron issue — @jonkuperman.com...
blog.jim-nielsen.com — Tradeoffs to Continuous Software?
May 28, 2025
I came across this post from the tech collective crftd. about how software is in a process of “continuous disintegration”: One of the uncomfortable truths we...
blog.jim-nielsen.com — Could I Have Some More Friction in My Life, Please?
May 26, 2025
A clip from “Buy Now! The Shopping Conspiracy” features a former executive of an online retailer explaining how motivated they were to make buying easy....
blog.jim-nielsen.com — Webkit’s New Color Picker as an Example of Good Platform Defaults
May 24, 2025
I’ve written about how I don’t love the idea of overriding basic computing controls. Instead, I generally favor opting to respect user choice and provide the...
blog.jim-nielsen.com — Product Pseudoscience
May 20, 2025
In his post about “Vibe Drive Development”, Robin Rendle warns against what I’ll call the pseudoscientific approach to product building prevalent across the...
blog.jim-nielsen.com — Multiple Computers
May 19, 2025
I’ve spent so much time, had so many headaches, and encountered so much complexity from what, in my estimation, boils down to this: trying to get something...
blog.jim-nielsen.com — Notes from Alexander Petros’ “Building the Hundred-Year Web Service”
May 14, 2025
I loved this talk from Alexander Petros titled “Building the Hundred-Year Web Service”. What follows is summation of my note-taking from watching the talk on...
blog.jim-nielsen.com — Notes from the Chrome Team’s “Blink principles of web compatibility”
May 12, 2025
Following up on a previous article I wrote about backwards compatibility, I came across this document from Rick Byers of the Chrome team titled “Blink...
blog.jim-nielsen.com — Language Needs Innovation
May 8, 2025
In his book “The Order of Time” Carlo Rovelli notes how we often asks ourselves questions about the fundamental nature of reality such as “What is real?” and...
blog.jim-nielsen.com — The Tumultuous Evolution of the Design Profession
May 5, 2025
Via Jeremy Keith’s link blog I found this article: Elizabeth Goodspeed on why graphic designers can’t stop joking about hating their jobs. It’s about the...
Older archives