Dan Q wrote note for GC4H2MB Church Micro 4008…Letcombe Regis

This checkin to GC4H2MB Church Micro 4008…Letcombe Regis reflects a geocaching.com log entry. See more of Dan's cache logs.

Found the grave, but this is now the second offset I’ve found here that’s asked me to double-back on my walk. Nope! I’m just going to save the calculated coordinates for the next time I’m in the area! Looking forward to returning!

Dan Q wrote note for GC9F5YC GIs in Letcombe

This checkin to GC9F5YC GIs in Letcombe reflects a geocaching.com log entry. See more of Dan's cache logs.

Found the clues and solved the coordinates, but I’ve JUST walked past the final location a while ago and don’t feel like doubling back today!

A=How many letters in the word underneath Knoxville?

B=A*2

C=Number of letters in place where “Beckett” came from.

D=C+1

E=F Number of letters in the word underneath Knoxville divided by 2

I should have worked out the likely location before I set out. Given that A must be a single digit number that can be doubled (B) to get a single digit number and halved (E, F) to get a second, there’s only one possible value for those four clues! The other two C and D are related to one another as well, resulting in a grand total of only 9 possible pairs of coordinates at which this cache could live (of which I’ll bet the “right” one stands out as the most-likely, even without making assumptions about the length of place names!). So yeah, I’m kicking myself slightly for not solving this before I visited.

But I’m glad I visited anyway. The historical connection is interesting and I enjoyed learning about it.

Maybe I’ll come find the actual cache next time I’m in the area!

Dan Q found GC9QWHD Plankton’s cache

This checkin to GC9QWHD Plankton's cache reflects a geocaching.com log entry. See more of Dan's cache logs.

Like many before me, from the looks of things, I didn’t find the cache at the published coordinates but about 11 metres away at N 51° 34.086′, W 001° 26.441′. Possibly worth the CO checking if those coordinates work better for them, too, during their next maintenance visit. TFTC!

Dan Q found GC93M2N Segsbury Fort

This checkin to GC93M2N Segsbury Fort reflects a geocaching.com log entry. See more of Dan's cache logs.

A challenging but worthwhile find during a walk along and around the Ridgeway.

A windswept and rolling rural landscape, with storm clouds brewing in the distance.

My initial attempt to collect the coordinates was way off because I misinterpreted some of the instructions and it yielded a point almost 2km away! My second attempt looked better, giving a likely-looking spot… but the checksum was out by one!

I triple-checked all the sources and was still out! I was most-confident in my calculated latitude, so I permuted all possible one-point longitude changes that would satisfy the checksum. This yielded two candidates: one a tenth of a minute out from my original calculation, and one a thousandth of a minute out.

The one that was a tenth of a minute out from my calculation “felt wrong”, being way off the path, so I merely glanced its way as I walked past to the other. The one that was a thousandth of a minute – which equates to only around a metre! – looked better, and sure enough when I got there I found a multitude of likely hiding spots.

Standing proud of dense green foliage, and with cropped fields behind, a wooden noticeboard describes the route and features of the Ridgeway.

The hide itself was sneaky too: I had to go further from the path than I expected in order to “look back” and spot the cache – very tricky in the thickening undergrowth! But find it I did, and duly signed the log before returning it to its snug little spot.

TFTC! FP awarded for the adventure.

× ×

Dan Q found GC46RY8 It really is about the (2 millionth) cache

This checkin to GC46RY8 It really is about the (2 millionth) cache reflects a geocaching.com log entry. See more of Dan's cache logs.

This morning I came up to explore the Ridgeway and escape from thinking about Life Stuff for a bit. (Although escaping from the rain wasn’t a possibility! It was real wet up here today!)

I was wandering this path in a bit of a reverie when I spotted something unusual and thought it a good candidate for a geocache to hide, having momentarily forgotten that this was in fact the reason I was on this particular footpath in the first place! But my geosense was solid, because when I took my phone out to check I discovered that, sure enough, I’d stopped right alongside the hiding area.

Dan, a white man with a goatee beard, wears a grey hooded jacket on a verdant rural footpath in moderate rain.

The cache was an easy find and I appreciated the proper-sized container! The lid is slightly damaged and no longer makes a complete seal but so long as it’s properly returned to its hiding place it doesn’t need any urgent attention.

SL, TNLN, TFTC!

×

Dan Q found GC39X1K GH #11 twisted tree

This checkin to GC39X1K GH #11 twisted tree reflects a geocaching.com log entry. See more of Dan's cache logs.

Found cache contents first, some of which I was only able to identify thanks to the photo in the previous log. Cache container, minus lid, was found a reasonable distance away, but this badly-damaged, nearly-destroyed cache is a goner, I feel.

A badly damaged geocache with a toy whistle falling out of it.

It’s seen no owner maintenance in most of a decade and CO doesn’t seem to have even logged in to GCCOM for 6½ years ,and it’s clearly getting wrecked in between every single attempted find. It should probably be put to rest.

×

Dan Q found GC39WVC G h # 10

This checkin to GC39WVC G h # 10 reflects a geocaching.com log entry. See more of Dan's cache logs.

A few attempts at hacking through the brambles to get near the hint location had me thinking that perhaps this was a wintertime only cache… before I realised that there was a different route by which I might approach it. Soon I was directly atop the coordinates and immediately sighted what I was looking for.

Unfortunately the cache was in the open, wide open, with a damaged clasp for its lid and its contents strewn about. Possibly somebody had put something ill-advised into the container and an animal had torn it open? Or else muggles, maybe?

Reassembled everything as best I could and returned it to its hiding place, but the cache container and contents would enjoy some maintenance.

Dan Q found GC4H2N6 Church Micro 4009 … Letcombe Bassett

This checkin to GC4H2N6 Church Micro 4009 ... Letcombe Bassett reflects a geocaching.com log entry. See more of Dan's cache logs.

A quick diversion before a hike up Gramp’s Hill and along the Ridgeway. After collecting the required information I pressed on to the cache, meeting some friendly ponies and horses on the way.

In a yard, a foal and a pony share some hay.

The coordinates were spot on, which surprised me as the location didn’t seem to be accessible! But it is, just a little overgrown! TFTC!

×

Vanity Nameservers (White-Label DNS) in 2026

When you buy a domain name, your registrar will typically offer to provide you with a collection of DNS nameservers. For most people, most of the time, that’s plenty sufficient.

A trip back to 2006

Terminal in which 'dig danq.dev @`dig NS dev +short | head -n1`' has been run, outputting NS responses representing three Gandi nameservers.
My secondary domain danq.dev has three nameservers, operated by its registrar Gandi.

This wasn’t always the case. In the long-distant past, I’ve registered domains for which I’ve had to run my own nameservers. Or else, where I’ve chosen to run my own nameservers in order to gain more control, or power, or just to play about with the technology inevitably break things.

When I transitioned to using third-party DNS around 2006, I used to be a big fan of vanity nameservers. “Vanity nameservers” (or “white-label DNS”) is where your nameservers are hosted at subdomains of the domain for which they’re the nameserver.

So instead of the nameservers for danq.me being, say, looking like ns-48-a.gandi.net and ns-228-b.gandi.net, they might look like, say, ns1.danq.me and ns2.danq.me. They might still be provided by the same third-party (or might not!), but you don’t get to see that. DNS protocol doesn’t care about the hostname it’s connecting to, it just needs the right A/AAAA records and it’s good to go!

Well, once you solve the bootstrapping problem, anyway!

If the nameservers for a domain are at a subdomain of that domain, you’ve got a circular dependency. To solve that, you have the servers one level higher provide “glue records” in addition to the list of nameservers. The glue records, which are shown in the “additional section:” of dig‘s output, above, solve the circular dependency. Now, the nameservers can be found without first having to… find the nameservers!

Terminal in which 'dig danq.me @`dig NS me +short | head -n1`' has been run, outputting NS responses ns1.danq.me through ns4.danq.me, with additional section records for A and AAAA records for each.
Tada! For the first time in about 20 years I’ve configured “vanity DNS”: danq.me‘s nameservers are now called ns1.danq.me, ns2.danq.me, ns3.danq.me and ns4.danq.me.

Vanity nameservers in 2026

The essential steps for setting up vanity nameservers are fundamentally the same as they always were. Propagation times are much shorter now and I was able to have the whole thing done and dusted within a couple of hours. In case you’re looking to follow-along, here’s the broad steps (the specifics depends on your registrar, DNS provider, etc.):

  1. Set up A (and AAAA, it’s 2026 you know!) records pointing ns1.example.com (or whatever your domain is) to their IP addresses.1
  2. Change the NS records for your domain to point to your new vanity nameservers.
  3. Change the SOA record for your domain to point to the first vanity nameserver2. Bump your serial.
  4. Have your registrar create glue records mirroring those you created in step 1.
  5. Have your registrar change the authoritative nameservers for your domain to those you created in step 1.
  6. (Optional) 😰 Frantically and repeatedly poke the registry’s DNS servers with dig until you’re confident that you didn’t just make a hideous typo and broke your domain in a way that would have been a pain in the arse to unpick when you last did this, in 2006. Calm down when you remember that it’s 2026 and nowadays it’s gonna be easy to fix via some API or web portal of your registrar!

That’s all there is to it.

But… why would anybody do this?

For most folks, this is pointless. Larger companies, especially in tech fields, sometimes do it as a branding exercise, especially if they’re re-selling services atop somebody else’s infrastructure and don’t want to so-clearly lampshade that3. But I took a look and… I don’t think people bother any more.

Hit up a handful of corporate domains you know and, with the exception of the few that run their own DNS, you’ll see the same big providers keep cropping up: Cloudflare, Amazon, Google, Microsoft…  I experimentally probed a hundred or so domains that I thought might use “vanity DNS” in front of a third-party DNS service… and found… none4.

Nobody cares any more. You’re either running your own, or you tell the world who’s running it for you, with no in-between.

Bringing back an old tradition

Vanity DNS is a dying art.

Soo…  I’m now doing vanity DNS on danq.me; it’s the first time I’ve run vanity DNS on a personal domain since… I want to say 2010‽ The journey started when Jacob asked me about my DNS setup, and it made me nostalgic for a time when nerdy techies whose nameservers were provided by a third party would just “do” vanity DNS as a matter of course.

Vanity DNS felt nerdy and fun back in 2006. And I guess that nowadays… it still feels nerdy and fun. It’s still as pointless as it ever was, but I don’t care. I’m doing something that I thought was cool when I first learned about it in 2001, just for the fun of it.

Type dig NS danq.me in your terminal to see the result: four nameservers, all with a .danq.me suffix5. Cute!

Footnotes

1 There’s a convention of naming nameservers ns1, ns2, ns3 etc., but if you want “fun” names then that’s fine too. Cloudflare’s nameservers have cute names, if you haven’t seen already!

2 Check your dotted-notation hostmaster email while you’re there; everybody forgets to look at these and so they’re often outdated.

3 Using vanity nameservers to conceal an underlying DNS provider does not conceal the third-party’s identity because you can always use the IP address of those nameservers to work out who’s behind them. For example, if you’re interested in seeing who’s really providing the DNS for danq.me, you might run NS_NAME=`dig NS danq.me +short | head -n1` to get the name of a random one of my nameservers, then NS_IP=`dig ${NS_NAME} +short | head -n1` to get its IP address, and finally do an reverse DNS lookup on that with e.g. dig -x $NS_IP. Often, this canonical name will be a giveaway and you won’t even have to look at the lists of who owns which blocks of IP addresses. It’s not a secret. (Gotta admit, though I’m not entirely happy with my provider… maybe it’s time to switch… or even go back to selfhosting DNS once more!)

4 whatsapp.com appears to have its own nameservers a.ns.whatsapp.com through d.ns.whatsapp.com, but their A records point to IP addresses whose reverse DNS names are a.ns.facebook.com through d.ns.facebook.com. Not terribly exciting, nor surprising, that Meta are running their own DNS services for their various properties (the same thing happens with instagram.com). paypal.com seems to have both its own DNS servers and some replicas provided by Digicert UltraDNS, which for a moment excited me when I thought that they might be part-way through a white-labelling exercise, but no: they’re two different services. I thought I’d find something interesting via one of the big blog, eccomerce, or VPS providers that offer free subdomains: folks like Bearblog, Dreamwidth, Substack or Medium. But nope; some seem to run their own DNS, and others just sit on top of a big third-party. Sigh.

5 Want to see the glue records? Run dig NS me +short to get the names of the authoritative nameservers for the .me TLD, e.g. a0.nic.me, and then query it directly with e.g. dig NS danq.me @a0.nic.me: you’ll see not just that I have four nameservers under .danq.me but also their IP addresses (in the “additional section”) – that’s the glue doing its thing!

× ×

Dan Q found GCBX0JC Church Micro 12106…Standlake

This checkin to GCBX0JC Church Micro 12106...Standlake reflects a geocaching.com log entry. See more of Dan's cache logs.

After a walk out with the dog to claim the FTF on nearby GCBX0R7, I figured that I still had a little a few minutes on my hands before the code I’d been writing for my day job finished deploying and testing itself, so I thought I’d try to go two-for-two with this, a second FTF!

Coordinate components A through D were easy to collect, but E posed us a problem: from the way it’s put forward in the cache description, the answer I came up with didn’t make any sense! I double-checked A through D and, confident in them, mathematically inferred a range of possible values for E, but couldn’t find any way to conceivably get any of them!1

A fawn-coloured French Bulldog on a lead sniffs at a metal boot scraper attached to the stonework at the side of a church door.
She’s no good at the counting, but she’s a big fan of getting her nose in to investigate clue objects.

In any case: of the handful of possible values for E, only one made sense/pointed anywhere believable, and it fit the checksum so we set out. The cache was easy to find, and what an excellent container! Amazing work! The container alone would have been worth a favourite point, if only I hadn’t been completely unable to parse that fifth coordinate component.

Signed log and returned the cache to its hiding place. Hoping the next cacher doesn’t get as confused as I did! TFTC!

Footnotes

1 I’ll message the CO to get to the bottom of my confusion!

×

Dan Q found GCBX0R7 War Memorial #???? ~ Standlake

This checkin to GCBX0R7 War Memorial #???? ~ Standlake reflects a geocaching.com log entry. See more of Dan's cache logs.

After liaising with the CO to get the formula fixed following my previous effort, the geohound and I came out for a drizzly walk in-between the downpours to have a second attempt at the FTF. We’re living in Standlake temporarily while our house is repaired following a catastrophic flood earlier in the year, and while the dog – who doesn’t much enjoy rain – was initially hesitant about coming out with me, she warmed to the idea just in time for us to set out.

Dan, a white man with a goatee beard, sits on the steps of a rain-wettened village war memorial, hugging a fawn-coloured French Bulldog.
Out in the wet.

The cache was an easy find in the second place I looked (if I’d checked the hint it’d have been the first place I looked). SL and returned, before pressing on to attempt a second FTF, this time at GCBX0JC.

TFTC, and for the quick turnaround on correcting the calculation!

×

A Postcard from Tony (who the heck is Tony‽)

For almost a year now, I’ve been actively soliciting Internet strangers to send me a postcard (in addition to the usual ways of contacting me, via comments or email). I had no idea it would be so-successful: I’ve received a postcard almost every month! I’ve been keeping them in a mildly-interactive gallery if you’d like to see.

Today was novel, though. Today, for the first time, I received a postcard from somebody… whom I can’t identify.

Composite photograph showing the front and rear of a postcard written on the plain brown cardboard bulk packaging of a Canadian boil-in-the-bag food product.
The postcard is from “Tony”. I’ve transcribed the full text on the postcards page.

The postcard is from “Tony”. So I can identify them that far. But… who the heck is Tony‽

In the case of every previous postcard I’ve received, it’s been somebody I’ve been able to “trace”: either because they’ve previously left a comment on my blog, or emailed me, or we’ve moved in the same circles of a (relatively small community) website, or they’ve included a URL or some other way to “find” them.

This one though, is a mystery.

Let me tell you my favourite thing about this postcard, though: it taught me something cool. The postcard is made out of the (billingual) outer packaging of some kind of MRE/boil-in-the-bag ration pack, and Tony tells me that when they were in the Canadian armed forces, their unit would send postcards like this “back home”: written directly onto the packaging.

How neat! If I had a family member in the services, it’d be neat to get a postcard from wherever they were deployed that not only told me how they were doing… but as a side-effect what they’d been having for dinner. It’s cute.

If you’re out there Tony, feel free to say hi in the comments or email, too. And thanks for the card!

×

Dan Q did not find GCBX0R7 War Memorial #???? ~ Standlake

This checkin to GCBX0R7 War Memorial #???? ~ Standlake reflects a geocaching.com log entry. See more of Dan's cache logs.

Well I feel especially thick right now. Probably I’ve done something stupid, but I rushed down here between-meetings in hope of an FTF, collected all the numbers, did the maths, and got… the same coordinates I started with! Wot?

The checksum even works out with the original coordinates, too! Which of course can happen organically but might mean there’s been a muck-up sonewhere…

Dan, a white man with a ponytail and goatee beard, sits on a war memorial with a confused expression.

Now I’m just wondering: is it me that can’t follow simple instructions? (Could be!) Or is there a problem with this listing?

Guess I’ll have to wait and see, when some other cacher tries…

×

Boring Polyamory: Equality and Bedrooms

Among the correspondence I engaged in following my blog post about my (boring) polyamory were a few examples of people being concerned about the equality of our arrangement: how we keep things “fair”1. By way of example, let’s take a look at a specific example that’s come up. Here’s something that I was asked recently:

Why does [my partner] Ruth not have her own bedroom? Both of her partners [JTA and I] get one!

Where does my partner sleep?

Simplified calendar showing May 2026 with different-coloured dots on the days: 14 of one, 17 of the other.
It’s been joked that polyamory is just a fetish for calendar management. Our family calendars are moderately simple, I imagine, compared to those of people in larger polycules or with less routine.

Except when she’s travelling or otherwise elsewhere2, Ruth spends her nights in an approximately even split3 between JTA‘s bedroom and mine.

This leads some people to observe that:

  • JTA has a bedroom of his own,
  • I have a bedroom of my own, and
  • Ruth “shares” both of those,
  • and this is unfair because her partners both get something that she is denied.

Superficially, this sounds true. But it conflates “fairness” with “parity”.

Fairness versus parity

Parity is making sure that everybody gets the same thing. It’s a simple, but crude, measure of equality. That’s probably why it’s so-popular with children.

“My sister got a doughnut so I should get one too.”

“You had an iced finger instead. You said you prefer iced fingers to doughnuts. And your sister doesn’t like iced fingers. Both of you got what you wanted.”

“Yeah, but now I want a doughnut because she had one!”

– the kind of conversation that’s probably familiar to you if you have children

When you aim for parity, you’re trying to make sure that every person gets the same thing. But this isn’t ideal, because not every person wants or needs the same thing!

A child with a ring doughnut decorated to look like a monster imitates the face of that monster, towards another child who is pointedly not paying attention.
“I don’t even want this. I just don’t want to feel like you’re getting something I’m not!”

Fairness, is aiming to for everybody to be content.

Ideally, everybody would get everything they wanted, all the time! But where that’s impossible, we can aim to at-least ensure that everybody is content. That everything is “good enough” for everybody. Unlike a quest for parity, this respects the fact that people have different needs.

Me personally? I absolutely prefer to have a bedroom of “my own”! In fact, to go even further than that: if I were in Ruth’s position I probably would want a room of my own, if it were feasible. Also, in some kind of hypothetical universe in which neither of us had other partners… I’d still ideally want to sleep alone some of the time (maybe once every couple of weeks?), because I’m of an inclination to occasionally luxuriate in being able to totally starfish-out.

If it were me instead of Ruth at the fulcrum of our V-shaped polycule… I suspect I’d have different needs to Ruth. And that’s fine!4

I’m a big fan of people being able to have their own space if they want it.

When the three of us first started cohabiting I suggested that Ruth should have her own bedroom. In our first shared house, we ensured that she did! But in practice, it never got used. Over time we’ve dropped it in favour of having a spare bedroom: a versatile space that can be place for gaming, or television, or guests5.

It was valuable to start from a position of assuming that we would all get “our own” room: parity is a good starting point! But fairness – meeting everybody’s needs in the most-equitable manner – is a better finishing point.6

Communicating a way to fairness

The world sometimes sucks. Many of the social interactions humans engage in, on a day-to-day basis, are not rooted in fairness. Some human social interactions go to the opposite extreme: they even exploitative.

Have you ever been in a salary negotiation? You might have heard the idiom that the first person to say a number loses. Salary negotiations are an adversarial game. Both sides want to come out with the most money, and so neither side is incentivised to show their hand.

Everything I learned about salary negotiations… I learned from playing Theme Park. Just make sure you’ve got a deal before you run out of biscuits.

Relationships between people who care about each another don’t have to work by adversarial rules (and, in fact, probably shouldn’t!7). If you love and trust and want the best for one another, then – hopefully – you can be honest about what you want, and can be okay with being hearing whether or not it’s something that your partner(s) can provide. Or else work together to find compromise position that best facilitates everybody’s needs!

So: if Ruth decides that she wants to have a bedroom of her own again, we can try to make that happen. If I start an additional serious/committed relationship and decide that I’m not getting enough “alone time”, we can work out how to achieve that. If JTA’s work starts requiring a long and tiring commute and he needs fewer childcare responsibilities, we’d solve for that. We tackle these problems as a family who love and care for one another, with the goal of getting an outcome that’s fair to everybody!

Those outcomes don’t have to mean that we each get “the same”. Just that we each, as far as possible, get what we most want.

Footnotes

1 Sometimes somebody – almost always a man – will claim that our arrangement is unfair to both JTA and I who have to “share” one woman, as if her role were to be “owned” by one of us. Sometimes somebody – almost always a woman – will claim that our arrangement is unfair to Ruth because she has to split her time and attention between two men. I find it hilarious that these two arguments, diametrically opposed, are most-often made on gender lines.

2 The other month, for example, Ruth stayed over at her aunt and uncle’s house after celebrating her uncle’s birthday. JTA and I hung out and watched some RobWords until I, tired after an afternoon of beginners’ tango, took an early night!

3 In actuality, Ruth spends slightly more nights sleeping in JTA’s room than in mine. This, too, is one of those things where people will sometimes instinctively assume represents some kind of injustice to me and that I’m somehow being hard done by or deprived of some kind of relationship “rights”. This is, clearly, nonsense.

4 Also: I couldn’t think of a better way to graphically represent us swapping around into some differently-pivoted V-shaped relationship than by using the deck of playing cards that was on my desk anyway. I was feeling unimaginative, apparently. Can you tell?

5 Or – indeed – a spare room can be a space for for one of us to use, if we’re ill or leaving early in the morning or something and don’t want to disturb a bedpartner.

6 If you’re looking for another example of the difference between parity and fairness, consider taxation! A flat tax like a poll tax exhibits strong parity, because everybody pays the same, but it doesn’t exhibit much fairness because the value of that tax burden is less for somebody who is wealthy than for somebody who is poor. We call taxes that favour parity over fairness regressive taxes. I guess that we could call sharing of family resources in a way that favours parity over fairness regressive sharing?

7 If you’re in a relationship that’s routinely adversarial, then… and I don’t mean to be judgemental… that doesn’t sound like a very healthy relationship to me. Perhaps step back and re-assess whether it serves you both?

× ×

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.