The IndieWeb Is Punk Manifesto

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

In 2025, I wrote:

Writing HTML is punk rock. A “platform” is the tool of the establishment.

And I’ve never seen anybody express what I was trying to say better than… this, stolen in almost its entirety:

Three chords and a domain name.

You don’t need a deal with a label. You don’t need a platform’s blessing. All you need is an out of tune guitar you can barely play, or a free text editor and a hosting bill. That’s it. That’s the whole scene.


I. We Are the DIY Kids

Punk didn’t wait for labels to say yes. It plugged in a blown out amp in someone’s basement and played anyway. Bad singer? Makes no difference. Three chords? You go. Own a drum kit but never had a lesson? You’re the drummer now.

The IndieWeb works the same way. Nobody’s waiting for permission to publish a website. You don’t need a “content strategy.” You don’t need a niche. You need a place that’s yours, and the nerve to hit publish.

Sometimes it’s ugly. It’s the wrong font. It’s a blog post about nothing at all. It works and it’s yours.

II. We Own the Masters Now

In the old days, the music industry owned the masters, the distribution, the airwaves. You made the music; they made the money and decided if anyone got to hear it.

Big platforms run the same racket. You write the posts, build the audience, generate the engagement, and they own the feed, the algorithm, and the right to bury you or boot you whenever it suits the shareholders.

Not here. Own your domain. Own your data. Own your identity. Your words live on infrastructure you control, not on borrowed servers that can evict you without notice.

III. No A&R, No Venture Capital, No Gatekeepers

No punk band was chasing a platinum record. Punk was about making music and getting it into people’s hands – that was the whole transaction.

No indie web builder is chasing Series A. We’re not optimizing for growth. We’re not selling your attention to advertisers. We charge a fair price for a real thing, if we even charge at all, and either way nobody’s pitching us to a boardroom.

Small. Sustainable. Answerable to no one but ourselves.

IV. The Zine Never Died, It Just Got a Domain

Punk had zines – cut, pasted, photocopied, and passed hand to hand because the real press wouldn’t cover it. That’s blogging before anyone even called it blogging.

We still do that. A blog is a zine with better uptime. An RSS feed is a mailing list that never asks for your email. Webmentions are show flyers stapled to telephone poles all over town, pointing back to each other, building the scene a link at a time.

Community over audience. Nobody in this room is just watching.

V. Make What You Need, Not What “Everyone” Needs

Stop designing for some hypothetical user that doesn’t exist. Build the thing that scratches your itch. Use it yourself – eat your own dog food. If you’re not depending on it, why would anyone else?

Do this enough, in the open, sharing your code and your notes and your half-finished ideas posted for all to see, and the rest of the scene will pick it up. That’s how it spreads: not top-down, but kid to kid, site to site.

VI. Weird Is a Feature

GeoCities had hideous backgrounds, animated GIFs, and a MIDI file that played on page load. It was ugly, but it was also alive in a way no template can ever be.

We’re not going for pixel-perfect. We’re not A/B testing a homepage. Have fun, or what’s the point? Keep the web weird. Keep it handmade. Keep the mohawks.

VII. It’s an All-Ages Show

Punk wasn’t always right about this. Each scene had its bouncers at the door and idiots in the pit. Bands worth remembering spent half their set shouting them back out – Rock Against Racism, Riot Grrrl, the Dead Kennedys writing a song to tell the Nazi punks exactly where to go. That wasn’t a side project. It was a full-time job.

So… Everybody gets a seat on the Indieweb. No matter your color, faith, gender, who you love, how your brain is wired, what your body can do, how old you are, where you were born, or which language you write in. Nobody at this door is taking a ticket.

No degree, no job title, no follower count, no years of experience, no permission from others who were on the scene first.

And if you’re already inside, hold the door open for others. Link to the new kids. Answer beginner questions without snark. Write the alt text, caption the video, keep it keyboard-reachable. A site nobody can use is a club with stairs at the doors and no accessibility ramp.

All are welcome on the Indieweb. It’s not a code of conduct bolted on after the fact. It’s the entire reason we’ve built our own places on the Web to begin with.

VIII. This Is the Counterculture Now

In the ’80s and ’90s, blasting Punk Rock was a way of telling the establishment where to stick it. Today, publishing on your own site instead of feeding the algorithm is the same middle finger, just a little quieter.

We opt out of the surveillance feed. We opt out of the engagement farm. We opt into a web made of small, stubborn, independent spaces that are loosely joined, built to last, and owned by those who make them.


We don’t need major platforms.

We have the Web, keyboards, tools, and community.

IndieWeb is Punk. Oi!

Is it time yet for me to go a step further and say this?

Stop fucking feeding the algorithms.
The Web belongs to humans. 🤘

Yeah, I think it’s time.

‘Simplified’

Well ‘thanks’ for the ‘simplified’ statement, I guess?

Letter with headline/subject "Your new 'simplified' Pension Annual Benefit Statement", with quotation marks around the word 'simplified' added for emphasis but giving the impression that it's not simplified, that's just what they're calling it.

×

AI Software Development – What Does The Data Say?

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

  • The maximum effective context limits of LLMs… beyond which model outputs become unusably inaccurate is orders of magnitude smaller than advertised limits…
  • LLMs cannot distinguish between recent and out-of-date information in the context, and information in the model itself, learned during training (“dominant priors”), can often “outweigh” information we give it…
  • Repo-level .md files tend to make model performance worse…
  • LLMs struggle with negation…
  • LLM inference is more accurate when we give them examples (demonstrations) rather than just describing what we want…
  • Large/long-scale industry studies show a clear trend – output is up (more code, more commits, bigger diffs), but outcomes don’t reflect that trend. If anything, the average team is taking longer to ship worse software…
  • The psychological and cognitive factors in LLM use are a growing field of serious research. One study found a significant correlation between confidence in AI output and belief in the paranormal…
  • Deep neural networks, including LLMs, struggle to learn patterns with long-range dependencies, at any scale of model…
  • The energy and compute needed to train an LLM to be an order of magnitude more reliable – e.g., wrong 3% of the time instead of 30% – is 10^20 times what the current frontier models require. Don’t expect significantly more reliable models any time soon….
  • …many published benchmarks that do indeed show LLMs getting better and better. But other research finds that we might wish to be more skeptical of benchmark performance… they’re not really like real-world problems…  [and] increasingly models are being “trained to the test”.

This is a really great summary of the state of the art in research into the efficacy of AI-driven software engineering, and it parallels with much of my experience. In particular, my personal experience has been that, properly-used, LLMs can be…

  • great at summarisation, which can make them helpful at tasks like parsing a large codebase to “trace” inconsistent logic, or explaining how a bug report represents a condition that is not covered by an automated test. This is most-valuable for unfamiliar codebases, where the developer’s intuition might be slower than the LLM’s token analysis: however this does introduce a risk compared to a more-systematic debugging process that an edge case (or parallel functionality) might be missed.
  • good at extrapolation. Given a solid example of what you’re trying to achieve, it’s relatively simple for an LLM to extrapolate that to other cases throughout your codebase. This can be useful when switching between many cases with slightly-differing logic, or when mirroring front- and back-end functionality in different programming language, where the LLM’s extrapolation capability may outperform the developer’s context-switching capability.
  • mediocre at creation: greenfield development from a “spec” to “code” is something LLMs appear to do pretty well, particularly for common and well-understood concepts (or, for “deep thinking” models, for tasks that they’re able to summarise correctly as a series of well-understood concepts). But when extending existing functionality, or when implementing functionality that is not well-represented by examples in the training data (e.g. truly new concepts, or use of new features of programming languages), LLMs routinely get stuck in flip-flopping loops, produce invalid solutions, or otherwise cause significantly more harm than they do good.

(They’re also okay for rubberducking, but so’s a rubber duck so that’s not really a good comparison.)

Since I first echoed Molly White’s observations that AI isn’t useless… but I’m not certain that they’re “worth it” several years ago, I’ve continued to experiment with different AI-assisted coding methodologies and technologies, but my fundamental position hasn’t changed: there are clearly some things that a coding LLM can help with, as described above, but there are problems when they get used for other tasks (which they routinely do). And I’m still not convinced that they’re “worth it”, and I’m concerned by those whose anthropomorphise GenAI and by the fact that a lot of industry is being built upon technologies whose runway is running out…

Anyway: great summary, Jason; thanks!