Jim Nielsen’s Blog

You found my experimental HTML feed (there are also other ways to subscribe).

I ♄ HTML

Recent posts

Making a Website in 2026

View

Pete Millspaugh has a great post over on the Val Town blog where he documents his attempt at making generating the same website across a variety of AI tools.

I love the post. Here are a couple of thoughts that come to mind.

The Space Is Ripe for Referral Fees

Pete decided to make a website for his conference talk, and he added a comments section to make it a less static / more dynamic demo.

This is interesting because LLMs are really good at generating one-off HTML pages you open at file://, but as soon as you start to introduce technological dependencies — like a database, or an analytics tool, or a service for sending email, or payment processing, etc. — the question becomes: How does the LLM choose which service to rely on?

It’s one thing to have the LLM choose React over Angular or Vue over Svelte. But how (and why) does it choose something like an auth provider? Does it build you a site with Auth0 or WorkOS or Clerk? How would a non-technical user even know how to weigh the trade-offs of making such a decision?

Pete said he was deliberately vague about these details, which is why I find his experience so intriguing. For example, here’s what he found after generating a site in Lovable:

My Lovable app is fullstack React, I learn, clicking around to find the code. It seems a bit heavy for a single-page site what with dozens of files […] The comments database seems to be using Supabase, which required no intervention on my part to set up. There’s a whole lot more—analytics, e-commerce and AI integrations, etc.

I’d be really curious to know what that ā€œa whole lot moreā€ was. Which tools/services did it choose to depend on?

How many people creating these sites understand that, even for a website that’s mostly static content, they’re being given an output that ships a JavaScript application framework, router, hydration runtime, analytics, component bundles, etc.? You asked for a sailboat, but you got an aircraft carrier. Do you know? Or more importantly, do you care?

But it’s more than just a choice of languages and frameworks. It’s also a choice of third-party services. Why Supabase? Why not Firebase? Or Neon? Speaking of Neon, here’s Pete’s experience with Vercel’s v0:

I copy-paste my prompt into the chatbox. After 11 seconds, v0 asks if I’d like to install Neon, because my comment wall needs a real database. Sure, why not. (Does that mean I need a separate Neon account? Vercel creates one for me, and later I’ll find a welcome email from Neon in my inbox.)

Frankly, this all feels like a space absolutely ripe for those kinds of business referral transactions you find in other industries.

Take real estate, for example. For lots of folks, when you buy a home you need an agent. (Not that kind of agent; a real estate agent.) Your real estate agent is there to help you answer all those common questions that come along with buying a home:

  • You: ā€œHow do I finance this?ā€ Agent: ā€œI know a mortgage companyā€¦ā€
  • You: ā€œHow do I know the house is in good shape?ā€ Agent: ā€œI know an inspection companyā€¦ā€
  • You: ā€œWe found X during the inspection, who can address it?ā€ Agent: ā€œI know a company that does {roofing | electrical | plumbing | etc.}ā€¦ā€
  • You: ā€œHow do I close on this deal?ā€ Agent: ā€œI know a title companyā€¦ā€

While you’re free to make all these decisions yourself, your agent is also there to help you pick. Presumably they’ll choose a company that reflects well on them, but there’s also undoubtedly good money to be made in referrals. After all, who else is dealing with people with these kinds of needs all day long?

The ā€œmake a website with AIā€ space has a parallel here which makes you wonder about the incentives behind the LLM’s decision-making. Why Supabase over Firebase? Because the LLM reasoned about it? Because, statistically speaking, it was the next most probable word? Because Supabase paid Lovable (and hopefully disclosed such preferential integrations)? If LLMs are already unpredictable and non-deterministic, nothing will make their actions more predictable and deterministic than some financial incentives.

Who is the customer here? The person generating the website? Or the company willing to pay for its services to be embedded in generated code? (That’s a lucrative business waiting to happen…)

Get Ya Some Imperial Credits

As a customer, the credit systems behind these LLM systems are annoying as hell. Here’s Pete:

I’m using up ā€œcreditsā€ as the machine works—0.70 so far, now 2.30, now 3.10, oh boy—and I have no clue what that means. There are no units. I’d prefer dollars. Are credits just dollars? As it turns out, no.

With another tool:

I do two more rounds of click ā€œContinue generationā€ and wait until my website is ready: 5 minutes 36 seconds for 0.070 credits, and 1 minute 29 seconds for 0.024 credits.

It’s probably just me, but c’mon, who do these ā€œcreditā€ systems really benefit?

When my prompt is running, don’t show me usage like this:

Credits: 0.05 -> 0.0672 -> 0.0871

Just show me the cost:

Cost: $0.02 -> $0.21 -> $0.31

Don’t make me do the conversion of credits -> dollars on the fly. Computers are good at math.

[soap-box]

I know it might hurt your bottom line if I’m not thinking about how much money credits I’m spending, but c’mon, can we stop with the financial abstraction on top of financial abstraction?

I hate how so many hosting companies are doing this ā€œcreditsā€ for compute primitives thing. It’s pitched as if spending credits is easier, because you can apply them across services, e.g. buy image transformations or serverless function compute, all with credits!

Yeah well guess what other financial abstraction I can apply to all those different services? Dollars and cents.

[/soap-box]

Conclusion

Pete’s conclusion:

I am both optimistic and pessimistic about this moment for making websites. I’m optimistic because end-user programming, the idea that everyone should be able to customize their own software, seems more possible than ever. I’m pessimistic because a slopsite, an AI-generated website with little to no human thinking involved, is often worse than no website at all.

That resonates — and feels generalizable. You fill in the blank:

An AI-generated ___ with little to no human thinking involved, is often worse than no ___ at all.

My conclusion?

Making Generating a website may be easier than ever. Understanding what you’ve generated, who you now depend on, and why? Not so much.


Reply via: Email Ā· Mastodon Ā· Bluesky

Addition By Subtraction

View

I still think saying no is important. In that vein, here’s something I shipped by removing functionality (and I think my site is better for it).

For the longest time on my icon gallery sites, you could view a list of icons in four pixel dimensions:

  1. 56Ɨ56
  2. 128Ɨ128
  3. 256Ɨ256
  4. 512Ɨ512

Each of these sizes could be accessed via a control on the website. This has been true for years on my site, whether it’s the current site:

A blurred iOS icon gallery with a red arrow pointing to window controls.

Or an older version of the site:

A grid of colorful app icons labeled ā€˜iOS Icon Gallery,’ with a red arrow pointing to a highlighted square in a row of four above.

By default, I loaded the 128-pixel version of the icons. But if you wanted to see other sizes, you could.

However, the more I used the site myself the more I thought, ā€œFour options is too manyā€.

When it comes to choice, what I really wanted was:

  1. Default
  2. Smaller
  3. Bigger

(Plus three is always a good number, unless you have a reason otherwise).

So I removed the big 512 option. If I want to study an icon at that size and detail, I click through to the icon’s detail page.

Now there are three options for list views: 56, 128, and 256. Small (great on mobile), 128 (great by default), and big (let me see more detail).

It’s simple to think about:

  • You get a size by default.
  • Not big enough? Go up a size.
  • Too big? Go down a size.

You don’t need to think about it anymore than that.

I mean you can, but I’ve found I don’t need to. So I’ve taken that off your plate. Less cognitive overhead.

Three panels showing rows of colorful app icons, including a duck, owl, lightbulb, piano keys, and hot air balloon.

Maybe one day I’ll add a slider and make it all dynamic. But for now, I like this small addition by subtraction.


Reply via: Email Ā· Mastodon Ā· Bluesky

ā€œIt Gives Great Demoā€

View

There’s that famous video of Steve Jobs explaining why they don’t didn’t make touchscreen MacBooks:

We thought about [a touch screen MacBook] years ago. We’ve done tons of user testing on this and it turns out it doesn’t work! Touch surfaces don’t want to be vertical. It gives great demo. But after a short period of time, you start to fatigue. And after an extended period of time, your arm wants to fall off. It doesn’t work. It’s ergonomically terrible. Touch surfaces want to be horizontal […] that’s why we’ve perfected our multitouch trackpads over the years.

I’m not going to weigh in on the new MacBooks. But what I find specifically intriguing in this video — and broadly relevant — is that phrase: ā€œIt gives great demo.ā€

Damn, that is a great line for so much of technology.

ā€œIt gives great demo.ā€

Something that looks amazing when it’s presented to you, but in practical day-to-day use you discover, ā€œActually this is kinda terrible.ā€

Demo is everything nowadays. Whatever can garner attention. Who cares if it works in practice, does it give great demo? Because demo time is sale time.

The purpose of a demo is to get your attention. To make you think about the product and that it exists. But a great product often makes you forget it exists at all.

It seems like a paradox: we’re attracted to what stands out, but we become enamored with what disappears.

Of course, this doesn’t just apply to products. People can give great demo, too. You can make a whole career out of just giving great demo.


Reply via: Email Ā· Mastodon Ā· Bluesky

Celebrating SIM Cards

View

It’s time to celebrate a little win.

The other day, my mom contacted me saying her 10-year-old iPhone wouldn’t turn on.

After getting a hold of the device and doing some family IT support, I concluded the battery was dead.

So I bought her a new (old) one on Walmart (SE 3rd gen., if you must know).

Her old phone used a SIM card, so I was expecting the process to go something like this:

  1. Take the SIM out of the old phone
  2. Put it in the new phone
  3. Setup the device
  4. Troubleshoot why there was no service
  5. Call my Mom’s carrier and work through the issue

But step 4 and 5 never happened.

The new phone ā€œjustā€ connected. I called her number. I texted it. Everything worked as expected.

Everything worked as expected.

Everything worked as expected.

I didn’t have to Google a single question.

I was floored.

Flabbergasted.

I know I shouldn’t have been because that’s how SIM cards are supposed to work, right? Like that’s the whole promise of a SIM card: you can seamlessly swap them between phones.

And in this case, the tech worked exactly as promised.

As I write this, I’m kind of amazed at how amazed I am that everything ā€œjust workedā€.

Shout out to anyone who has ever worked on SIM card technology.

More things like this please :)


Reply via: Email Ā· Mastodon Ā· Bluesky

Why My Dad Didn’t Have a Cell Phone

View

Here’s Dave Rupert writing about all those emails, texts, phone calls, etc. we’re getting these days:

Once upon a time it had utility, now it’s all noise and grifter slop demanding our attention and giving us to-dos

That last part really hit: ā€œgiving us to-dosā€.

I feel this. So many of the messenger apps on my phone are other people laying claim to my time and attention.

It reminds me of an interaction I had with my Dad years ago.

This was back when cell phones were starting to become ubiquitous.

Not smartphones, mind you. Cell phones, i.e. telephones that were mobile. Texting wasn’t really a thing yet. These were devices for making voice calls wherever you went.

As a teen, it seemed like everyone had one: my teachers, my friends, even my friends’ parents.

But not my parents.

They were ā€œbehind the timesā€. (Everyone was getting cell phones and we didn’t even have caller ID on our landline!)

One night at family dinner I asked, ā€œDad, why don’t you have a cell phone?ā€

His response?

ā€œWhy would I want to allow other people to contact me whenever they want?ā€

I still think about that.


Reply via: Email Ā· Mastodon Ā· Bluesky

No Need for Retirement When Utopia Is Around the Corner

View

I’ve mentioned before my interest in the history and development of nuclear weapons.

Currently, I’m reading The Doomsday Machine: Confessions of a Nuclear War Planner by Daniel Ellsberg (of Pentagon Papers renown).

In the first chapter, Ellsberg talks about his time working at the RAND Corporation during the missile gap years when the U.S. thought it was falling behind the Soviet Union in nuclear capabilities.

Many of his descriptions sound strikingly similar to the rhetoric coming out of places like Anthropic. For example, note the religious overtones of working at a corporation:

I loved RAND, where I ended up spending ten years [...] Much, I imagined, like members of a religious order would, I shared with my colleagues a sense of brotherhood, living and working with others for a transcendent cause.

They were insiders: burdened with the responsibility of knowledge others did not possess.

precisely in my early missile-gap years at RAND and as a consultant in Washington, there was our sense of mission, the burden of believing we knew more about the dangers ahead, and what might be done about them, than did the generals in the Pentagon or SAC, or Congress or the public, or even the president. It was an enlivening burden.

And what was their ā€œenlivening burdenā€? Saving the world:

[My colleagues] shared a feeling—soon transmitted to me—that we were in the most literal sense working to save the world.

What really stood out was this part, where Ellsberg describes how he and his colleagues truly believed the end was nigh:

From the Air Force intelligence estimates I was newly privy to, and the dark view of the Soviets, which my colleagues shared with the whole national security community, I couldn't believe that the world would long escape nuclear holocaust. Alain Enthoven and I were the youngest members of the department. Neither of us joined the extremely generous retirement plan RAND offered. Neither of us believed, in our late twenties, we had a chance of collecting on it.

This reminds me of the report that AI researchers have taken up smoking as a way to signal their belief that AI will cure cancer before smoking kills them.

At this point, I wouldn’t be surprised to hear a lab like Anthropic announce they’re discontinuing all employer-sponsored retirement benefits. It’d be a small sacrifice on behalf of the employees to demonstrate their faith that universal high income is just around the corner. (The corporate cost savings would just be a nice bonus.)


Reply via: Email Ā· Mastodon Ā· Bluesky

No More Icons In Every Menu By Default

View

Have you heard the good news? I bemoaned the approach of putting an icon in every menu item by default which shipped with macOS Tahoe — but now it’s gone in Golden Gate!

John Gruber wrote about this reversion back in June, including the fact that Apple’s new Human Interface Guidelines specifically call out Tahoe’s approach to menus as an example of what not to do on macOS.

Two menu lists showing days of the week; one with icons marked incorrect, one without icons marked correct, illustrating consistent visual treatment. Text advises uniform design and guidance on icons.

As the old saying goes, it takes a big man corporation to admit when they’re wrong.

As I mentioned in my original post, one of the arguments I had in my quiver against this practice was ā€œApple doesn’t do itā€. But once Apple started putting icons in all their menus in Tahoe, I lost a persuasive point in my argument.

But now, I think I have an argument that’s even stronger than before!

It’s no longer: ā€œApple doesn’t put icons in their menus.ā€

It’s: ā€œApple tried putting icons in all their menus, and even they went back on it!ā€

They designed it, shipped it, lived with it for a year, then publicly changed their guidance on it. To me, that’s a lot more persuasive than simply saying, ā€œApple doesn’t do this.ā€

Choosing not to do something you’ve never done is one thing.

Choosing not to do something you’ve done is experience.

That’s the essence of life: learning by doing.


Reply via: Email Ā· Mastodon Ā· Bluesky

We Need All the Disciplines

View

From where I sit, figuring out what to build, building it, and shipping it are all part of the art of making software.

Many disciplines have emerged through the years to facilitate this work: product, design, engineering, devops, etc.

We need all these disciplines to make great, dependable software (granted, in different doses). Each brings different values and judgments; each sees things the others don’t.

And including all might mean going a bit slower.

Human collaboration may seem less ā€œefficientā€ than handing the work over entirely to the machines.

But inefficiency may be the cost of collaborating with humans, rather than extracting an output from a machine. We gain not only from their judgment and expertise in a particular discipline, but from the relationship, trust, and shared understanding that blossoms from making something together.

As the old proverb says: ā€œIf you want to go fast, go alone. If you want to go far, go together.ā€

Reformulated for today: If you want to go fast, go with the LLM. If you want to go far, go with your fellow humans.


Reply via: Email Ā· Mastodon Ā· Bluesky

The Dock on Mac, From OS 10 to macOS 27

View

I wrote the chapter on app icon history for The iOS App Icon Book.

The other day I found an old note stashed away where I had started researching the macOS version of that chapter (which Michael ultimately ended up writing).

At the time, I didn’t know what to write. I mean, how do you write a history of icon design for the Mac? It’s rich!

To get my creative juices flowing, I started by researching the different docks in macOS through the years and compiled them all into a single graphic (big shout out to this compilation of images on 512 Pixels).

Screenshot of mac app icons as they appeared in the dock from OSX Cheetah to macOS Golden Gate

I just wanted to preserve and archive that image. Check out the high-res version here.

That’s it, that’s the post.


Reply via: Email Ā· Mastodon Ā· Bluesky

The Fascinating World of Domains

View

Pete Millspaugh has a lovely article over on WIRED that peers into the world of domains. (If you’re as interested in the esoteric details of domains as I am, follow Pete’s writing at Dot Com Press.)

You should just read the article, but here are a few things that stood out to me.

The .com Registry

Did you know who the registry for .com is? I didn’t.

The registry that owns .com, Verisign, makes a billion and a half dollars every year just by keeping the lights on. To Verisign’s credit, the lights never go out: It reports 100 percent uptime over the past 28 years. It’s a pretty slick business model, watching over a database of words and collecting annual renewal fees. Warren Buffett thought so too, investing in Verisign in 2012, when its stock price was about one-eighth what it is today.

Why is it simultaneously surprising and not surprising that the company running .com makes billions and has 100% uptime over almost three decades?

Maybe GitHub should reach out for some advice, lol.

Buying Domains Is a Spy Thriller

Apparently the last time you could buy generic top-level domains (gTLDs) was in 2012.

So now that ICANN is providing another window of purchases in 2026 — and nobody knows when another window will open — there’s a lot of interest in capitalizing on these moments for new gTLDs.

most organizations [are] extremely secretive about their plans. One applicant from the last round tells me companies were flying around the world, meeting in person to avoid any risk of digital leaks, avoiding Gmail for fear of Google spying. Instead of email or video calls, she flew to London, then to Madrid. ā€œWe did it all in person. People got a little weird and scary, super paranoid.ā€

There’s a certain irony to this — people flying around the world to conduct business on owning a piece of the internet because they don’t trust the internet.

It appears the future of the internet is to be negotiated offline lol.

More Domains = More Online Handles

We haven’t had new gTLDs since 2012. Why do we need more?

I can imagine a future where expressive top-level domains become our personal brands, identities on the internet. This is already true in some nerdy corners of the web, like on Bluesky, where your domain is your username. I don’t call my internet friends Neal and Luke, I call them neal.fun and luke.zip. Instead of joining the land rush to grab our username on each new social media site, we’ll carry our domain around the web with us.

I’m telling you, domains are the OG handles on the internet.

More domains mean more opportunities for individual expression at the root layer of internet infrastructure — that makes sense for a web that’s meant to be worldwide!

You Think You Have a Domain Vice?

As developers, we often joke about our addiction to buying domain names for our side projects.

But buying a domain name — e.g. my-side-project.com — is child’s play compared to buying a generic top-level domain name (gTLD). That’s where the domain whales are.

ICANN charges a $227,000 application fee for each string, to recover the cost of running the program. The $36 million or so that Nova will need to cover those fees […] is coming from the personal bank account of Yoni Belousov, a reclusive domain investor (industry jargon: ā€œdomainerā€) who’s been in the business since he was 14 years old.

Next time somebody asks me what I’d do with an insane amount of wealth, I now have the jargon for an answer: ā€œI’d become a domainer.ā€

A Few Fun Facts to Close

A few things about domains I didn’t know until I read this:

all two-letter extensions are off the table. Those belong to countries, like .co in Colombia and .me in Montenegro and .ai in Anguilla.

If you want to run a geographic TLD, like .nyc or .paris, you need approval from that municipality

your string can’t be too similar to an existing one (.corn is a no-go; looks too much like .com)

certain special strings are off limits, like .icann and .www (wouldn’t that be a trip).

www.www would be a baller domain! Just think of the recursion you could do with that on the subdomain level.


Reply via: Email Ā· Mastodon Ā· Bluesky