The Incredible Overcomplexity of the Shadcn Radio Button
Well, this is horrifying.
Well, this is horrifying.
Update: Never mind! It turns that Google’s issue is with unreachable robots.txt files, not absent robots.txt files. They really need to improve their messaging. Stand down everyone.
A bit has been flipped on Google Search.
Previously, the Googlebot would index any web page it came across, unless a robots.txt file said otherwise.
Now, a robots.txt file is required in order for the Googlebot to index a website.
This puzzles me. Until now, Google was all about “organising the world’s information and making it accessible.” This switch-up will limit “the world’s information” to “the information on websites that have a robots.txt file.”
They’re free to do this. Despite what some people think, Google isn’t a utility. It’s a business. Other search engines are available, with different business models. Kagi. Duck Duck Go. Google != the World Wide Web.
I am curious about this latest move with Google Search though. I’d love to know if it only applies to Google’s search bot. Google has other bots out crawling the web: Adsbot-Google, Google-Extended, Googlebot-Image, GoogleOther, Mediapartners-Google. I’m probably missing a few.
If the new default only applies to the searchbot and doesn’t include say, the crawler that’s fracking the web in order train Google’s large language model, then this is how things work now:
It would be good to get some clarity on this. Alas, the Google Search team are notoriously tight-lipped so I’m not holding my breath.
A browser-based RSS reader that stores everything locally. There’s also a directory you can explore to get you started.
Start a blog. Start one because the practice of writing at length, for an audience you respect, about things that matter to you, is itself valuable. Start one because owning your own platform is a form of independence that becomes more important as centralized platforms become less trustworthy. Start one because the format shapes the thought, and this format is good for thinking.
See, I’ve always compared that building pressure of need-to-blog to being constipated (which makes the resultant blog post like having a very satisfying bowel movement), but maybe Brad’s analogy is better. Maybe.
This is a spot-on analysis of how CSS-in-JS failed to deliver on any of its promises:
CSS-in-JS was born out of good intentions — modularity, predictability and componentization. But what we got was complexity disguised as progress.
Ah, the circle of life!
I always enjoy reading Jay’s newsletter, but this was a particularly fun trip down memory lane.
There’s a link to an old post by Jeff Atwood who said:
A blog without comments is not a blog.
That was responding to an old post of mine where I declared:
Comments should be disabled 90% of the time.
That blog-to-blog conversation took place almost twenty years ago.
I still enjoy blog-to-blog conversations today.
Matthias responds to my pondering about the point of “likes” and “shares”:
I like to think of Webmentions not as a measure of popularity. To me, they measure connection. Connection to individual people and connection to the community as a whole. Webmentions let you listen into the constant noise out there and, just like a radio telescope, pick up scarcely audible echoes of connection.
I had a very pleasant experience last week while I was reading through the RSS feeds I’m subscribed to. I came across two blog posts that were responding to blog posts of my own.
Robin Sloan wrote a post clarifying his position after I linked to him in my post about the slipperiness of the term “AI”.
Then Jim Nielsen wrote a deliciously satirical piece in response to my pithy little parable about research.
I love it when this happens!
Elizabeth Spiers recently wrote a piece called What Made Blogging Different?:
And if they wanted to respond to you, they had to do it on their own blog, and link back. The effect of this was that there were few equivalents of the worst aspects of social media that broke through.
It’s so true. I feel like a response from someone’s own website is exponentially more valuable than a response on Bluesky, Mastodon, Instagram, or any other social media platform.
Don’t get me wrong: I absolutely love the way that Brid.gy will send those social-media responses right back here to my own site in the form of webmentions. It also pings me whenever someone likes or shares a post of mine. But I’ve noticed that I’m not that interested in those anymore.
Maybe those low-investment actions were carried over from the old days of Twitter just because that’s the way things were always done, without us really asking whether they serve much purpose.
Right now I accept these likes and shares as webmentions. I display a tally of each kind of response under my posts. But I’m not sure why I’m doing it. I don’t particularly care about these numbers. I’m pretty sure no one else cares either.
If I cared, then they’d be vanity metrics. As it is they’re more like zombie metrics. I should probably just put them out of their misery.
Every engineer eventually overbuilds something. You think you’re being smart. You’re thinking ahead, building for growth and before you know it, you’ve created a system ten times heavier than your actual problem. That’s the trap. We keep designing for imaginary futures for scale that may never come and call it engineering. But it’s not engineering. It’s over-engineering.
The industry rewards it too. Nobody gets promoted for keeping things small and sane. You get promoted for complexity.
Sunday night session
I was going to save this announcement for later, but I’m just too excited: Harry Roberts will be speaking at Web Day Out!
Goddamn, that’s one fine line-up, and it isn’t even complete yet! Get your ticket if you haven’t already.
There’s a bit of a story behind the talk that Harry is going to give…
Earlier this year, Harry posted a most excellent screed in which he said:
The web as a platform is a safe bet. It’s un-versioned by design. That’s the commitment the web makes to you—take advantage of it.
- Opt into web platform features incrementally;
- Embrace progressive enhancement to build fast, reliable applications that adapt to your customers’ context;
- Write code that leans into the browser, not away from it.
Yes! Exactly!
Thing is, Harry posted this on LinkedIn. My indieweb sensibilities were affronted. So I harangued him:
You should blog this, Harry
My pestering paid off with an excellent blog post on Harry’s own site called Build for the Web, Build on the Web, Build with the Web:
The beauty of opting into web platform features as they become available is that your site becomes contextual. The same codebase adapts into its environment, playing to its strengths, rather than trying to build and ship your own environment from the ground up. Meet your users where they are.
That’s a pretty neat summation of the agenda for Web Day Out. So I thought, “Hmm …if I was able to pester Harry to turn a LinkedIn post into a really good blog post, I wonder if I could pester him to turn that blog post into a talk?”
I threw down the gauntlet. Harry accepted the challenge.
I’m sure you’re already familiar with Harry’s excellent work, but if you’re not, he’s basically Mr. Web Performance. That’s why I’m so excited to have him speak at Web Day Out—I want to hear the business case for leaning into what web browsers can do today, and he is most certainly the best person to bring receipts.
You won’t want to miss this, so be sure to get your ticket now; it’s only £225+VAT.
If you’re not ready to commit just yet, but you want to hear about more speaker announcements like this, you can sign up to the mailing list.
Rob has redesigned his site and it’s looking gorgeous.
I really like the categories he’s got for his blog.
The web is just people. Lots of people, connected across global networks. In 2005, it was the audience that made the web. In 2025, it will be the audience again.
“We’ve stripped React out of our highest-traffic user flows and replaced it with vanilla JavaScript using small, focused libraries for specific needs,” said the CTO of a streaming service. “Our page load times dropped by 60% and our conversion rates improved by 14%.”
In which I answer questions about blogging.
I’ve put a copy of this on my own site too.
An interview about my blog, originally published on the website People and Blogs in April 2025.
My name is Jeremy Keith. I’m from Ireland. Cork, like. Now I live in Brighton on the south coast of England.
I play traditional Irish music on the mandolin. I also play bouzouki in the indie rock band Salter Cane.
I also make websites. I made a community website all about traditional Irish music that’s been going for decades. It’s called The Session.
Back in 2005 I co-founded a design agency called Clearleft. It’s still going strong twenty years later (I mean, as strong as any agency can be going in these volatile times).
Oh, and I’ve written some nerdy books about making websites. The one I’m most proud of is called Resilient Web Design.
I was living in Freiburg in southern Germany in the 1990s. That’s when I started making websites. My first ever website was for a band I was playing in at the time. My second ever website was for someone else’s band. Then I figured I should have my own website.
I didn’t want the domain name to be in German but I also didn’t want it to be in English. So I got adactio.com.
To begin with, it wasn’t a blog. It was more of a portfolio-type professional site. Although if you look at it now, it looks anything other than professional. Would ya look at that—the frameset still works!
Anyway, after moving to Brighton at the beginning of the 21st century, I decided I wanted to have one of those blogs that all the cool kids had. I thought I was very, very late to the game. This was in November 2001. That’s when I started my blog, though I just called it (and continue to call it) a journal.
Sometimes a thing will pop into my head and I’ll blog it straight away. More often, it bounces around inside my skull for a while. Sometimes it’s about spotting connections, like if if I’ve linked to a few different things that have some kind of connective thread, I’ll blog in order to point out the connections.
I never write down those things bouncing around in my head. I know I probably should. But then if I’m going to take the time to write down an idea for a blog post, I might as well write the blog post itself.
I never write drafts. I just publish. I can always go back and fix any mistakes later. The words are written on the web, not carved in stone.
I mostly just blog from home, sitting at my laptop like I’m doing now. I have no idea whether there’s any connection between physical space and writing. That said, I do like writing on trains.
I use my own hand-rolled hodge-podge of PHP and MySQL that could only very generously be described as a content management system. It works for me. It might not be the most powerful system, but it’s fairly simple. I like having control over everything. If there’s some feature I want, it’s up to me to add it.
So yeah, it’s a nice boring LAMP stack—Linux Apache MySQL PHP. It’s currently hosted on Digital Ocean. I use DNSimple for all the DNS stuff and Fastmail for my email. I like keeping those things separate so that I don’t have a single point of failure.
I realise this all makes me sound kind of paranoid, but when you’ve been making websites for as long as I have, you come to understand that you can’t rely on anything sticking around in the long term so a certain amount of paranoia is justified.
I’m not sure. I’m not entirely comfortable about using a database. It feels more fragile than just having static files. But I do cache the blog posts as static HTML too, so I’m not entirely reliant on the database. And having a database allows me to do fun relational stuff like search.
If I were starting from scratch, I probably wouldn’t end up making the same codebase I’ve got now, but I almost certainly would still be aiming to keep it as simple as possible. Cleverness isn’t good for code in the long term.
I’ve got hosting costs but that’s pretty much it. I don’t make any money from my website.
That Irish traditional music website I mentioned, The Session, that does accept donations to cover the costs. As well as hosting, there’s a newsletter to pay for, and third-party mapping services.
You should absolutely check out Walknotes by Denise Wilton.
It’s about going out in the morning to pick up litter before work. From that simple premise you get some of the most beautiful writing on the web. Every week there’s a sentence that just stops me in my tracks. I love it.
We wife, Jessica Spengler, also has a wonderful blog, but I would say that, wouldn’t I?
You know I mentioned that The Session is funded by donations? Well, actually, this month—April 2025—any donations go towards funding something different; bursary sponsorship places for young musicians to attend workshops at the Belfest Trad Fest who otherwise wouldn’t be able to go:
So if you’ve ever liked something I’ve written on my blog, you can thank me by contributing a little something to that.
Cheers,
Jeremy
Welcome back, Jason!