? Grid intensity view:

Issue 1

Issue 2

Issue 3

Issue 4

Issue 5

Issue 6

Issue 7

Issue 8

Unknown grid intensity

The perfect site doesn’t exist

Illustration of a green laptop with hands typing surrounded by plants
Image by Michelle Barker. CC-BY-NC 4.0.

There’s something special about starting a new web or software project. Like a blank canvas, it has so much potential. Surely this is where we’re about to do our best work. Maybe we’ll get to try out shiny new tools that will help ensure we only write concise, DRY and efficient code. We’ll ship a well-designed product that’s fast, a pleasure to use, with a great UX, and absolutely no technical debt. It will be perfect.

The thing we don’t want to think about at that point is maintaining our project. We also don’t want to think about how we’ll feel about our project six weeks, six months, or a year down the road, when we’re trying to fix that niggling bug that we can’t quite squash, or when our busy minds have moved onto other things and we’re struggling to ship a new feature. As our project becomes weighed down by technical debt, its initial promise fades.

These feelings might be familiar to those of us concerned with the future of our planet. Many of us want to take action, but are unsure where we’re best placed to focus our energies. It can feel like the problem is too big for us to have any impact at all.

Perfectionism is the reason so many of us have long-abandoned side projects languishing in Github repositories, or folders full of half-finished blog posts. Starting is so much easier than finishing. Paralysed by the need for things to be perfect, progress is easily stalled.

Move slow and mend things

The work of building a website is rarely “done”. Like tending a garden, even after a project has been deemed complete and a site successfully deployed, there are still bugs to fix, Node modules to update, servers to maintain. In the work for a liveable planet there is no end point either. No time will come when someone says “well done, you fixed it”. It’s not a problem that can be solved alone, but we can all contribute to the solutions.

If we take the time to care, if we’re methodical and we resist the urge to rush, we can make things better for our future selves and for others. If “move fast and break things” is Silicon Valley’s rallying cry, then the flip-side is move slow and mend things.

A humane web

It’s with this mindset — of care, and nurturing — that we can begin to build a better web for humans and the planet. We all need to start factoring sustainability into the web products we build. That should go hand-in-hand with building a more humane web, one that views the people building it, and more importantly, the ones using it, as human beings, with all the imperfections that are present in each of us.

A web where the content we choose to publish is intentional, not throwaway garbage (the online equivalent of filling up our environment with cheap, plastic waste, storing up big problems for the future). Where our code is written with care, and awareness of its impact on individuals and the wider ecosystem. I don’t know about you, but to me that goal feels like an antidote to the alternative, one dominated by soulless bots and generative AI content.

Perfectionism in the quest for a humane web

When it comes to environmental action and building more humane web products, there are a number of ways that perfectionism can hold us back.

Analysis paralysis

Lack of data, or imperfect data is one thing that can prevent us moving forward. Paradoxically, our desire to know exactly how much our actions will make a difference can lead us to take no action at all. If we can’t measure our impact, how can we be sure that we’re making one?

The environmental impact of our web products is hard to measure. There are tools (like Website Carbon) that attempt to paint a rough picture of a website’s carbon emissions, but in reality they cannot know exactly how a person navigates our website, how much time they spend on there, the resources they download, the make and model of their device, how it was manufactured. We need to be content with less than perfect data. A humane web recognises that humans are messy, and we can’t know everything.

Fear of focusing on the “wrong” thing

So often I’ve heard the argument that web sustainability is the wrong priority, that we should be focussing on other, more impactful actions.

It’s true that there are other industries more polluting than the web. But the impact of our digital lifestyles is wide-ranging, and at a time when every industry needs to decarbonise and attempt to minimise environmental harm, taking action within our own area of expertise is where we can be most effective.

When people are made to feel their efforts are futile, however, they could be discouraged from any action. I don’t believe there is a wrong or right thing to focus on if the alternative is nothing at all. Everyone has a stake in a humane web, so everyone should be encouraged to play a part.

Doing it wrong

The fear of being judged or criticised by others, or feeling like we don’t have sufficient expertise can prevent us from sharing our actions publicly, or from even trying in the first place. Sometimes this is our imposter syndrome talking, other times it’s a genuine lack of expertise that might (wrongly) lead us to think we can’t take the first step.

A more humane web is one where we can feel confident sharing our journeys, acknowledging our weaknesses, learning in the open, asking for help, and correcting with kindness.

Burnout and overwhelm

In the fast-paced tech industry, burnout is unfortunately common. Burnout is characterised by feelings of energy depletion or exhaustion, and negativity or cynicism towards a job. These feelings can be common too when it comes to environmental action. Overwhelmed by the sheer amount of stuff to do, it can feel like a constant uphill battle, with no end in sight.

A humane approach is to be kind to ourselves and others, and to recognise that we all have limits to what we can achieve alone.

Fighting perfectionism

Any of these factors can leave us feeling that as we’re incapable of delivering something perfect, we might as well not try in the first place. But if we can recognise and push past those feelings, we’re often capable of more than we realise. By taking action to build a more humane web, we can also help inspire others to take their own action. We can be honest with ourselves and acknowledge our own limitations, while also recognising that every step counts, no matter how small.

Code gardening

No ongoing web or software project is entirely free of technical debt. The drive to eradicate it totally is likely futile, and can lead to feeling overwhelmed: when it feels like our task will never be done, is there any point in starting? But in reality, taking small steps to chip away at it can pay us back dividends. Rather than imagine a perfect endpoint that might never exist, we can think of ourselves as caretakers or gardeners. There will always be small jobs we can do, whether that’s tilling the soil and planting new seeds (think refactoring) or pulling up weeds and sweeping the ground (deleting unused code or files, or removing old dependencies).

This certainly doesn’t mean we should aim to only ever ship “perfect” code. Far from it. There’s no such thing, because as we learn and grow, and as our products evolve, the idea of what constitutes “perfect” will change too. Instead it’s about accepting that imperfection is inevitable, and striving to leave things a little bit better for the people working alongside us. It’s a more humane approach to product development, and I think we could all do with a little more humanity on the web.

Small actions, bigger impact

Similarly, we can all play a part in building a more humane, and sustainable web. For instance, each time we work on a project, we could try to make it just a little bit greener. We could resize a few images, to prevent users downloading unnecessarily large files. We could ensure the links on a page have accessible names, or check our heading levels, so that users of assistive technologies can browse our site and find what they need more easily. We could ensure the images on a page are lazyloaded, reducing data transfer. We could remove some unused CSS or unnecessary Javascript dependencies, or even replace some dependencies with well-supported web platform features, to help reduce energy use on the user’s device.

These are all actions that are relatively quick and easy to implement, that can add up to big savings over time. You can find more examples in the Web Sustainability Guidelines draft from the Sustainable Web Design community group.

Sometimes it’s hard to resist the urge for a big refactor — and sometimes that’s absolutely a useful thing we can do, when we have the time and energy to do it well. But if we don’t have the luxury of that, our energies are not wasted. A little bit better is still better.

Perhaps even more importantly, we should talk to each other. Find out what others need from us and how we can help, be willing to learn, educate people where it’s helpful, and be ready to fight alongside people when needed. None of this has one big end goal, where everything is finally perfect. It’s an ongoing labour of love, that we can all chip away at bit by bit, with (hopefully) many little successes along the way. A humane web is about much more than just code. It’s a web by and for humans. It’s for everyone.


Michelle Barker is a front end developer at Ada Mode, where she builds user interfaces and data visualisations for industrial decarbonisation and renewable power generation. She is the author of front end blog CSS { In Real Life }, an international conference speaker and a freelance writer for the web.