Edit

Open Source Carbon Footprints

Last week I was on Environment Variables, talking about carbon footprints and sustainability in open source. Here are my extended show notes!

This is a links-heavy version of what we discussed, for people who want to follow references.

The recording

Get it here:

It’s also available on YouTube if you’d prefer to watch Chris and I talk.

The topic

We had a few things lined up but the overarching theme was the importance of considering the carbon footprint of software in open source projects. As Wagtail Product Lead at Torchbox, and President of the Django Software Foundation, I’ve spent a fair bit of time thinking about the footprints of Wagtail and Django, and considering how we can take ownership of reducing said footprint. Which isn’t easy, as we have little control over how people use our software!

A good illustration of this is the total carbon footprint of Wagtail sites mapped across regions of the world:

Total carbon footprint of Wagtail sites as a treemap - 8240 tCO2e per year

Most of those sites, I’ve never heard of. That’s just how our relationship with users tends to be in open source software.

Extended show notes

Why and how to measure digital carbon footprints

We started by discussing the necessity of measuring digital carbon footprints and my history getting up to speed on this topic.

For Wagtail, we’re talking on the order of 10-20,000 websites, each with a footprint on the order of 0.5 to 1.5 tons of CO2 per year. So 5000 to 15000 tons of greenhouse gas emissions per year. For Django, best case scenario is about 20x that.

Choosing methodologies

For websites, here’s our four go-to methodologies at Torchbox, and their suitability for different types of initiatives:

Initiative SWD Hosting infrastructure GreenFrame Display power consumption
Infrastructure reduction or relocation Avoid ✅ Recommended Inapplicable Inapplicable
Back-end / database / server code optimisations Avoid Consider case-by-case ✅ Recommended Inapplicable
Front-end code optimisations ✅ Recommended Inapplicable Consider case-by-case Inapplicable
Dark theme Inapplicable Inapplicable Inapplicable ✅ Recommended
Design / product changes ✅ Recommended Inapplicable Consider case-by-case Inapplicable
Carbon reduction KPIs Consider case-by-case Consider case-by-case Consider case-by-case Consider case-by-case

This is from our 2022 work on methodologies to quantify site emissions, still very relevant in 2025: Announcing our Digital Emissions Methodologies

Wagtail’s footprint

Wagtail’s 2023 Estimating Wagtail websites’ emissions was our first attempt at this. We’ve since further refined our approach but haven’t shared the updated 2023 / 2024 / early 2025 numbers yet, because the numbers are changing due to a lot of factors that are hard to reason about:

  • The main model we use has switched from Sustainable Web Design v3 to v4, which reports generally lower emissions 🔽.
  • It’s based on sites’ page weight, which has gone up, which is bad 🔼.
  • It’s also based on the Ember electricity grid carbon intensity data, which has generally gone down, which means sites might still use the same amount of energy but pollute less (which is good!) 🔽.
  • But the number of sites has gone way up, so the total emissions are still increasing 🔼.
  • And our estimations of Wagtail sites’ page views have gone down, which means lower emissions 🔽.

So this is pretty confusing! But hey if you want to explore,

Current goal is to release this data with a representation as Digital Carbon Ratings, but even that adds another layer of indirection, so we’ll see. It looks like that currently, for 2024 figures:

Digital Carbon Ratings: how Wagtail sites score. April 2024 HTTP Archive data, SWDM v4, 2023-2024 Ember grid carbon intensity, 4889 websites

That’s a neat representation of overall performance of Wagtail sites, but even understanding that requires a lot of context. For example, the way the ratings are designed, the number of sites falling in each category isn’t meant to be proportional! More on that in a future post.

Anyway, the tentative number of sites for 2025 goes up from 4889 to 6431 sites in the dataset. With a footprint still on the order of 5000 - 10000 tons of CO2 per year.

Using other models

All of the above is with Sustainable Web Design. We’re also experimenting with other ways to estimate or even measure a site’s emissions:

Here’s a sample from that last article, showing the power consumption of different animation techniques in CSS and SVG according to this profiler:

CSS and SVG animations: 100mW to 500mW, with bar charts for Chrome, Safari, Firefox

Practical steps towards greener websites

On the podcast, we reflected on how Wagtail actively works on reducing websites’ footprint through initiatives like Google Summer of Code (GSoC). Over three years, our GSoC projects have tackled different sustainability improvements:

  1. Leaner images, lower footprint, at scale showcases adoption of modern image formats and responsive image techniques to significantly reduce image weights.
  2. The (still work in progress) low-carbon template is our attempt at reducing the footprint of newly-built sites. The designs are finalized and heavily optimized (see below), but the implementation still needs work.
  3. And in 2025, grid-aware websites present the opportunity to deliver sizeable reductions on existing sites.

Low-carbon designs by our GSoC contributor Nandini Arora:

Low-carbon templates design screenshots


There are lots of other steps that projects can take. See for example my assessment of the Web Sustainability Guidelines. The latest Web Sustainability Guidelines are an excellent resource to explore all the possible ways to improve digital sustainability.

Taking responsibility as an open-source community

Unlike corporate structures with reporting and accounting standards defined by frameworks like the GHG Protocol, we don’t have such clear definitions of how to track direct and indirect emissions in open source. My go-to is GHG Protocol Scope 3 Category 11: Use of Sold Products (PDF), which is optional to report on in most accounting frameworks, but definitely important in my opinion. However it fits much better to appliances, than open source libraries to build sites and apps with.

I’ve learned a lot from Mozilla’s pioneering work on including Firefox usage emissions in their reporting (2020: Release: Mozilla’s Greenhouse Gas emissions baseline, latest: Mozilla’s Emissions Data). This chart specifically:

Emissions distribution pie chart, 2% business, 98% product use

Quoting their work, emphasis mine:

Per the Greenhouse Gas Protocol, Mozilla is not required to calculate or report the product use emissions (scope 3, category 11) associated with using our products such as Firefox, Hubs and Pocket. However, Mozilla aims to lead by example and support transparency by reporting this optional data, and we began doing so in 2019. By taking this step, we hope to encourage our peers in the technology industry to do the same.

[…]

In 2022, the total emissions from using Mozilla’s products was 533,463 tons of carbon dioxide equivalent (tCO2e).

That’s 533,463 tons for use of Firefox and other projects, compared to 15,281 for all other aspects of Mozilla’s operations. 97% of the total emissions. Similar factors are at play with Wagtail, Django, and most likely lots of other open source projects.

Setting norms for the open source ecosystem

So we need to bring this type of thinking to more of the open source ecosystem, and the Python world in particular!

For Wagtail, I put together RFC 90: Sustainability roadmap, a roadmap for sustainability in Wagtail, supporting contributors and setting clear goals. This was with help from Lauri Apple, so the roadmap covers possible features / product enhancements but also clear ways to engage our community in those efforts. The changes we can do in this space are entirely dependent on adoption by users, so it’s crucial they understand what’s at stake and why to spend time on this. And formalizing our goals to reduce our footprint also helps us communicate how impactful we think any contributions in this space can be!

Bringing this to the wider Python world though, it takes time to find enough people working on this across projects to get together and move things along. I started on the Python forum in Who works on digital sustainability in the Python world?. Will keep things moving for Django and Python as much as possible.

Beyond measurements and reductions, a concrete step that projects can take is to create a sustainability statement, like Wagtail’s Sustainability page. This helps in communicating intensions, policies if any, and just results to date on how the project is working towards reducing its footprint.

Looking ahead

Finally, Chris and I touched on the importance of nurturing sustainability expertise within open-source communities and the broader technology industry. ClimateAction.tech is the best resource here in my experience, a community of technologists who consistently share their knowledge and experiences in digital sustainability.

And for Wagtail, the next step for us is to complete the grid-aware websites project put together by the Green Web Foundation! Hopefully we’ll be able to report back with quantified results in the next few months.