Andrew Ladd

*the digital strategist, not the hockey player

Back to What's New

Know your limits

10 October, 2025

At the beginning of this year, I wrote about resurrecting an old web comic of mine for the 2020s. One of the things I noted at the time was that a web comic in 2025 has a much larger carbon footprint than a web comic in 2005:

Compared to the comic's original incarnation, the new one is a lot more bloated. One comic used to be a single, 40kb download; now it's more like 2mb, by the time you take into account all those extra files... All our supposed progress over the last twenty years has not only pushed us in that direction but in fact actively demands it. So I'm doing my best within the constraints I have, but this is why it's more important than ever that tech and digital workers consider environmental impact in everything they build.

As the year went on, though, and I was posting one or two of those web comics each week, I began to realise that I hadn't fully considered the environmental impact of what I was doing. Long story short, every comic I posted was triggering a full rebuild and deploy of my entire website — so over a month of comics, we're talking maybe 15 or 20 minutes of server time just to add a half dozen new files. I wasn't single-handedly melting the ice caps or anything, but I was also using a hell of a lot more resources than I needed to, just because that was the path of least resistance.

I wanted to do better, but without wanting to get too bogged down in the details, the path of more resistance was a pretty big jump. As with so much in web development, once you start trying to follow best practice in one area, you all of a sudden find yourself needing to change a bunch of other things to make sure you're also following best practice elsewhere. Properly fixing this problem meant I was going to have to:

  1. Set up a new private connection between my hosting service (which delivers the pages you read) and my content management system (which delivers the images you see).

  2. Take the data from that new private connection to the CMS, and make it publicly available so that the comics page you load in your browser can read additional data from the CMS in the background.

  3. Totally rewrite how the comics page works behind the scenes, so that when the data from the CMS is fresher than the data from the last time the website was rebuilt, the page can use that new data to grab the most recent comics and display them.

  4. Totally rewrite how the comics page works in the browser, so that users know if new comics have been added, and so that they aren't sitting around staring at a blank page while they wait for the page to check for fresh content.

You get the idea. You start off with what sounds like a simple idea — stop rebuilding the whole website every time you upload an image — and all of a sudden you're having to teach yourself new tricks and juggle multiple competing requirements to make sure the website is still usable. None of it is impossible; none of it is even really that complicated, if you know what you're doing. But sadly I didn't, and neither do lots of other casual or freelance developers who are nevertheless building websites all over the place. So you can understand why a lot of people just carry on with the default settings. Or I can understand it, anyway; I did it for nine months without fully realising it.

In the end, I spent a couple of weeks trying to unpick all these issues, and I now have a comics page that no longer requires a full rebuild each time I add a new file. It's not a perfect solution, by any stretch. Now the page loads the most recent comic it knows about from the last full rebuild — so that if the connection fails, or your browser doesn't support the code for fetching the new images, you still get something — and in the background it goes off to look for anything more recent. If it finds anything, it lets you know there are newer comics to be seen, and gives you an extra little button to jump to the most recent one. It's clunky, for sure, but it accomplishes what I set out to do. If I have another few weeks sometime, I might try and make it better.

You see, though, how quickly the internet can become kind of a mess — because it's just easy enough that anyone who really wants to set up a webpage can do it without a lot of effort, but not so easy that anyone can do it well. And as long as the world is full of people who will just stick to the path of least resistance because it works well enough, the world is also going to be full of websites doing all kinds of dubious or unnecessary crap behind the scenes.

In a way, a large carbon footprint is the quaintest possible problem I could have ended up with; I could have been unknowingly collecting personal information about people, or revealing my own passwords, or outputting debug information to the browser where anyone could find it, and all of that would have been much more serious. I expect you've visited at least one website this month that's "leaky" in precisely that kind of invisible way: not doing any immediate or obvious harm, but ready to pop if the right hacker comes along. I worry that, despite my best efforts, my website is still doing something like that too.

That's why it's important to be mindful of this kind of thing. Ultimately the best way to prevent this kind of issue is not to write better code; it's to think more purposefully about what code you need to write in the first place. I've been really clear with myself as I've built up this site over the years that I need to keep it simple and harmless. There are no contact forms or other places for user input, for example, both because these can be used to inject malicious code if set up poorly, and because it opens up all kinds of considerations about the processing and storage of user-submitted data. Would a contact form be useful? Absolutely. But would it be so much more useful than a simple email link to justify all those extra risks and complications? No.

All of which to say, next time someone tells you that some shiny new piece of technology or software is the answer to all your problems, stop and think about it before you plow ahead. While it might solve your immediate problem, without proper consideration from someone who actually understands the whole system and knows what they're doing, it might also create four new ones you don't even know about.

Next up

Does a novel need to be as accessible as a website?22 November, 2025

Read now

Previously

Do you really need to translate that?14 July, 2025

Read now

You might also be interested in...