From 744ed6d09e409427545290da5c032ac0c16069dd Mon Sep 17 00:00:00 2001 From: Thibaud Colas Date: Mon, 27 Nov 2023 14:08:29 +0000 Subject: [PATCH 1/9] Add RFC 90 first draft --- text/090-sustainability-roadmap.md | 221 +++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 text/090-sustainability-roadmap.md diff --git a/text/090-sustainability-roadmap.md b/text/090-sustainability-roadmap.md new file mode 100644 index 00000000..0a70d6ba --- /dev/null +++ b/text/090-sustainability-roadmap.md @@ -0,0 +1,221 @@ +# RFC 090: Sustainability roadmap + +- RFC: 090 +- Author: Thibaud Colas +- Created: 2023-11-27 +- Last Modified: 2023-11-27 + +## Abstract + +Wagtail’s carbon footprint is on the order of thousands of tons of CO2-equivalent per year. +With Wagtail now having a [sustainability statement](https://wagtail.org/sustainability/) and the start of [documentation for sites to reduce emissions](https://docs.wagtail.org/en/stable/advanced_topics/sustainability_considerations.html#sustainability-considerations), we need a clearer roadmap to reduce the carbon footprint of Wagtail websites and Wagtail as a whole. + +Creating this roadmap as an RFC will allow for community feedback, help contributors be aware of this effort as early as possible, and encourage collaboration. + +To help with planning, we track possible improvements across three themes: + +1. Measure the carbon footprint of Wagtail +2. Reduce the carbon footprint of Wagtail +3. Spread the word + +With Wagtail being open source self-hosted software, the impact of this effort will be entirely dependent on the adoption of the improvements by Wagtail site implementers. + +## Key measures + +With a lot of room for climate change efforts to be data-driven, we propose the following key metrics to assess the impact of possible efforts across the three areas outlined above. + +### Carbon footprint of Wagtail + +As tons of CO2-equivalent emissions per year (tCO2e/year). + +This is the total amount of carbon emissions generated by Wagtail as an open source organization and the websites using Wagtail. +It includes the emissions of Wagtail project infrastructure, maintainers, contributors, and users. +It includes the emissions of Wagtail websites, to the extent that they can be determined with publicly-available data. + +This figure should be reported in accordance with the [Greenhouse Gas Protocol (GHG)](https://ghgprotocol.org/). +In particular, it should include all Scope 1, Scope 2, and Scope 3 emissions. + +### Scoring of Wagtail websites on Web Sustainability Guidelines audits + +As a median, average, or other measure of the statistical distribution of scores of Wagtail websites. + +The score would be a yet-to-be implemented measurement of how well a website conforms with the [Web Sustainability Guidelines (WSG)](https://w3c.github.io/sustyweb/). +At its most basic, it could be a count of how many WSG success criteria are "passed". 3. **Number of Wagtail websites with a Net Zero target**. + +The WSG aren’t well established yet, so this would require a lot of R&D work, and collaboration with the community group behind the guidelines. + +### Number of Wagtail websites with a Net Zero target + +As an absolute count of how many websites have such targets. + +Websites with specific climate commitments would count whether the targets are present due to the websites’ local legal landscape, or a commitment of the website owner’s organization, or a specific goal at the level of the individual website. + +## Possible improvements + +### Measure the carbon footprint of Wagtail + +**Ideal outcome**: A community-wide understanding of how Wagtail websites and community efforts contribute to climate change. Methodologies we can confidently use to assess the impact of future work. + +Here are specific improvements within this area: + +- Create a methodology to measure the carbon footprint of Wagtail websites +- Measure the carbon footprint of building Wagtail: + - Wagtail project infrastructure + - Wagtail events + - Wagtail maintainers and contributors +- Establish a methodology to collect data about how many Wagtail websites there are and their characteristics +- Document a methodology to extrapolate the carbon footprint of all Wagtail websites from publicly-available data +- Create a methodology to measure the footprint of specific features +- Define more granular carbon footprint KPIs that could be referenced on a regular basis + +Prior work: + +- [Results of the 2023 Wagtail Deployment Survey](https://wagtail.org/blog/2023-wagtail-deployment-survey/) +- [Wagtail docs: Sustainability considerations](https://docs.wagtail.org/en/stable/advanced_topics/sustainability_considerations.html) +- [Estimating Wagtail websites’ emissions](https://wagtail.org/blog/estimating-wagtail-websites-emissions/) +- [Greener coding - Making a 'gold' reference configuration with the Wagtail demo site](https://github.com/wagtail/wagtail/discussions/8843) +- [Django Developers Survey 2022](https://lp.jetbrains.com/django-developer-survey-2022/) + +### Reduce the carbon footprint of Wagtail + +**Ideal outcome**: a lower carbon footprint for Wagtail websites and Wagtail as a whole. + +Here are specific improvements as a _first draft_. This is missing: + +- Highlights on which improvements are the most promising. +- A notion of status – some of those improvements have already happened. +- More improvements from more recent auditing of accessibility guidelines. +- A sense of how granular this should get vs. agreement on high-level principles. + +Explanation of the columns: + +- **Scope clarity**: how well-defined is the improvement? Is it clear what the improvement is, and how it would be implemented? +- **Impact**: how much of an impact would this improvement have on the carbon footprint of Wagtail websites? +- **Reach**: how many Wagtail websites would this improvement affect (given the sites were to upgrade to the relevant version)? +- **Complexity**: how complex would this improvement be to implement? +- **Measures**: what measures would we use to assess the impact of this improvement? + +#### Shorter user journeys + +| Improvement | Scope clarity | Impact | Reach | Complexity | Measures | +| --------------------------------------------------------------------------- | ------------- | ------ | ----- | ---------- | ------------------------ | +| schema.org or similar structured data as a first-party feature | Low | Low | 50% | Low | Time spent on site | +| Validation of Wagtail sites’ treatment in search knowledge graphs | Low | Low | 50% | Medium | Time spent on site | +| Yoast-style content analysis & reporting features for Wagtail sites | Low | Low | 50% | Medium | Time spent on site | +| Support for functionality like Rich Results, Web Stories, etc in CMS | Medium | Low | 5% | Low | Site page views | +| Better sitemap generation, including more of the site’s contents | Medium | Low | 5% | Low | Server-side energy usage | +| Redirects awareness, reporting, optimisation to reduce usage where possible | Low | Low | 1% | Low | Server-side energy usage | +| Canonical page awareness, reporting, optimisation to reduce duplications | Low | Low | 1% | Low | Server-side energy usage | +| Documentation of front-end performance issues in Wagtail | High | High | 10% | Low | CWV scores | +| | | | | | | + +#### Cloud infrastructure + +| Improvement | Scope clarity | Impact | Reach | Complexity | Measures | +| ---------------------------------------------------------- | ------------- | ------ | ----- | ---------- | ------------------------ | +| Better CDN support, higher cache hit rates | Medium | Low | 10% | Medium | Server-side energy usage | +| Official "Wagtail on cloud" hosting guide | Medium | Low | 5% | Low | Server-side energy usage | +| Support for static sites with 90+% of CMS features | Medium | High | 10% | Medium | Server-side energy usage | +| Incremental rebuilds for static content | Medium | High | 1% | High | Server-side energy usage | +| Benchmarking of energy usage - scale-to-zero vs. always-on | High | Medium | 10% | Low | Server-side energy usage | +| Scale-to-zero CMS database | Medium | High | 10% | Medium | Server-side energy usage | +| Scale-to-zero CMS server on FaaS or container-as-a-service | Low | Low | 1% | High | Server-side energy usage | +| Documentation on preview / staging sites’ best practices | Low | Low | 1% | High | Server-side energy usage | +| Carbon-aware CMS server | Low | Medium | 10% | High | Server-side energy usage | +| Carbon-aware background jobs | Low | Medium | 10% | High | Server-side energy usage | +| | | | | | | + +#### Media + +| Improvement | Scope clarity | Impact | Reach | Complexity | Measures | +| --------------------------------------- | ------------- | ------ | ----- | ---------- | ------------------------------ | +| Responsive images | High | High | 50% | Medium | Image weight | +| Optimised Wagtial renditions | High | High | 50% | Medium | Image weight | +| AVIF images | High | High | 50% | Medium | Image weight | +| WebP images | High | High | 50% | Medium | Image weight | +| Lossless image optimisation (PNG) | High | High | 50% | Medium | Image weight | +| Lossy image optimisation (PNG, MozJPEG) | High | High | 50% | Medium | Image weight | +| Lazy-loading of images | Medium | High | 50% | Low | Image weight | +| Optional site images (low-carbon site) | Medium | High | 1% | Low | Image weight | +| YouTube lite embeds | High | High | 10% | Low | YouTube embed weight reduction | +| | | | | | | + +#### CMS features + +| Improvement | Scope clarity | Impact | Reach | Complexity | Measures | +| ------------------------------------------ | ------------- | ------ | ----- | ---------- | ------------------------ | +| Dark mode | High | High | 50% | Low | Screen energy usage | +| Performance budgets in the CMS | Medium | High | 100% | Medium | CWV scores | +| Reporting of performance scores in the CMS | Medium | High | 100% | Medium | CWV scores | +| Duplicate files | Low | Low | 5% | Medium | Server-side energy usage | +| Starter templates | Medium | High | 1% | Low | Server-side energy usage | +| | | | | | | + +#### Data processing + +| Improvement | Scope clarity | Impact | Reach | Complexity | Measures | +| --------------------------------------------- | ------------- | ------ | ----- | ---------- | ---------------------------- | +| Documentation for back-end performance issues | High | High | 10% | Low | Server-side energy usage | +| Background workers | Medium | Medium | 50% | Medium | Server-side carbon emissions | +| Wagtail cache tags aware of previews, drafts | High | High | 50% | Medium | Server-side energy usage | +| Template caching for admin | High | High | 100% | Low | Server-side energy usage | +| Wagtail-aware Django debug toolbar | High | High | 5% | Low | Server-side energy usage | +| SQL performance optimisations | High | High | 50% | Medium | Server-side energy usage | +| Rewrite performance-sensitive code in Rust | Medium | Medium | 100% | Medium | Server-side energy usage | + +Prior work in Wagtail: + +- [Willow v1.6: AVIF and support for optimizer libraries](https://github.com/wagtail/Willow/releases/tag/v1.6) +- [Greener coding - Making a 'gold' reference configuration with the Wagtail demo site](https://github.com/wagtail/wagtail/discussions/8843) +- [Preview-aware caching](https://docs.wagtail.org/en/stable/topics/writing_templates.html#wagtailcache) +- [Wagtail websites sustainability improvements](https://docs.google.com/spreadsheets/d/1TiX4D-nFd2F3vlFljZ0PYNLBq3ZPLeeQkDh8QH7LvRw/edit#) + +Prior work outside Wagtail: + +- [Quantifying greenness in FaaS](https://www.linkedin.com/pulse/quantifying-greenness-faas-lukasz-mastalerz/) +- [GSF carbon-aware SDK](https://github.com/Green-Software-Foundation/carbon-aware-sdk) +- [Contemplating codecs comparison - Cloudinary](https://cloudinary.com/blog/contemplating-codec-comparisons) +- [Organic Basics - Low impact website](https://github.com/Organic-Basics/ob-low-impact-website) +- [Granian – A Rust HTTP server for Python applications](https://github.com/emmett-framework/granian) + +### Spread the word + +**Ideal outcome**: Buy-in from Wagtail users and wider industry on the importance of sustainability, and the role of Wagtail in this. + +Here are specific improvements within this area: + +- Refine Wagtail’s current sustainability statement, and make it more visible +- Organise sustainability-themed Wagtail events + - Sustainability sprint + - What’s New in Wagtail – sustainability edition + - Sustainability-themed Wagtail Space +- Create a sustainability team for Wagtail +- Publish case studies on tackling sustainability-related requirements on Wagtail projects +- Write a yearly sustainability report for Wagtail +- Improve the documentation’s "Sustainability considerations" page +- Rate possible [Wagtail hosting providers](https://github.com/wagtail/wagtail/wiki/Wagtail-Hosting-Providers) on sustainability considerations + +## Supporting activities + +Here are possible activities which we could take on to adjust this roadmap / support the delivery of the improvements outlined above. + +- Creation of a sustainability team for Wagtail +- Upskill of Wagtail contributors via [Green Software for Practitioners course](https://training.linuxfoundation.org/training/green-software-for-practitioners-lfc131/) +- Review of [Green Software Patterns](https://patterns.greensoftware.foundation/) relevance for Wagtail & Wagtail websites +- Review of [Web Sustainability Guidelines](https://w3c.github.io/sustyweb/) relevance for authoring tools: [Authoring Tool Guidance sustyweb#22](https://github.com/w3c/sustyweb/issues/22) +- Audit Wagtail websites with [Web Sustainability Guidelines](https://w3c.github.io/sustyweb/) +- Review Wagtail on [Green Software Maturity Matrix](https://docs.google.com/document/d/1wa2lliXQeH6HE1JHqwjTFuVndRUXzxGlbYXRtTQxF5o/edit) + +## Open questions + +### Should the Wagtail project have a Net Zero target or other formal climate commitment? + +This would be unprecedented. +Net Zero commitments such as the [Paris Agreement](https://unfccc.int/process-and-meetings/the-paris-agreement), [Race to Zero](https://unfccc.int/climate-action/race-to-zero-campaign) or the [SBTi Corporate Net-Zero Standard](https://sciencebasedtargets.org/net-zero) aren't designed for open source projects. +They’re great ways to drive ambitious climate action nonetheless. + +### Should the Wagtail project follow Web Sustainability Guidelines? + +The [Web Sustainability Guidelines](https://w3c.github.io/sustyweb/) are a set of guidelines to help organizations reduce the environmental impact of their websites. +They are currently authored by a _Community Group_ at W3C, and as such don’t have the authoritativeness of web standards. +They’re still in draft, and not (yet) widely adopted. From a10fd5b7d347e0c54f2678d0eb9f1521c2fd97ef Mon Sep 17 00:00:00 2001 From: Thibaud Colas Date: Mon, 27 Nov 2023 14:14:58 +0000 Subject: [PATCH 2/9] Reorder for clarity --- text/090-sustainability-roadmap.md | 64 ++++++++++++++---------------- 1 file changed, 30 insertions(+), 34 deletions(-) diff --git a/text/090-sustainability-roadmap.md b/text/090-sustainability-roadmap.md index 0a70d6ba..280a4939 100644 --- a/text/090-sustainability-roadmap.md +++ b/text/090-sustainability-roadmap.md @@ -15,11 +15,22 @@ Creating this roadmap as an RFC will allow for community feedback, help contribu To help with planning, we track possible improvements across three themes: 1. Measure the carbon footprint of Wagtail -2. Reduce the carbon footprint of Wagtail -3. Spread the word +2. Spread the word +3. Reduce the carbon footprint of Wagtail With Wagtail being open source self-hosted software, the impact of this effort will be entirely dependent on the adoption of the improvements by Wagtail site implementers. +## Supporting activities + +Here are possible activities which we could take on to adjust this roadmap / support the delivery of the improvements outlined above. + +- Creation of a sustainability team for Wagtail +- Upskill of Wagtail contributors via [Green Software for Practitioners course](https://training.linuxfoundation.org/training/green-software-for-practitioners-lfc131/) +- Review of [Green Software Patterns](https://patterns.greensoftware.foundation/) relevance for Wagtail & Wagtail websites +- Review of [Web Sustainability Guidelines](https://w3c.github.io/sustyweb/) relevance for authoring tools: [Authoring Tool Guidance sustyweb#22](https://github.com/w3c/sustyweb/issues/22) +- Audit Wagtail websites with [Web Sustainability Guidelines](https://w3c.github.io/sustyweb/) +- Review Wagtail on [Green Software Maturity Matrix](https://docs.google.com/document/d/1wa2lliXQeH6HE1JHqwjTFuVndRUXzxGlbYXRtTQxF5o/edit) + ## Key measures With a lot of room for climate change efforts to be data-driven, we propose the following key metrics to assess the impact of possible efforts across the three areas outlined above. @@ -76,6 +87,23 @@ Prior work: - [Greener coding - Making a 'gold' reference configuration with the Wagtail demo site](https://github.com/wagtail/wagtail/discussions/8843) - [Django Developers Survey 2022](https://lp.jetbrains.com/django-developer-survey-2022/) +### Spread the word + +**Ideal outcome**: Buy-in from Wagtail users and wider industry on the importance of sustainability, and the role of Wagtail in this. + +Here are specific improvements within this area: + +- Refine Wagtail’s current sustainability statement, and make it more visible +- Organise sustainability-themed Wagtail events + - Sustainability sprint + - What’s New in Wagtail – sustainability edition + - Sustainability-themed Wagtail Space +- Create a sustainability team for Wagtail +- Publish case studies on tackling sustainability-related requirements on Wagtail projects +- Write a yearly sustainability report for Wagtail +- Improve the documentation’s "Sustainability considerations" page +- Rate possible [Wagtail hosting providers](https://github.com/wagtail/wagtail/wiki/Wagtail-Hosting-Providers) on sustainability considerations + ### Reduce the carbon footprint of Wagtail **Ideal outcome**: a lower carbon footprint for Wagtail websites and Wagtail as a whole. @@ -107,7 +135,6 @@ Explanation of the columns: | Redirects awareness, reporting, optimisation to reduce usage where possible | Low | Low | 1% | Low | Server-side energy usage | | Canonical page awareness, reporting, optimisation to reduce duplications | Low | Low | 1% | Low | Server-side energy usage | | Documentation of front-end performance issues in Wagtail | High | High | 10% | Low | CWV scores | -| | | | | | | #### Cloud infrastructure @@ -123,7 +150,6 @@ Explanation of the columns: | Documentation on preview / staging sites’ best practices | Low | Low | 1% | High | Server-side energy usage | | Carbon-aware CMS server | Low | Medium | 10% | High | Server-side energy usage | | Carbon-aware background jobs | Low | Medium | 10% | High | Server-side energy usage | -| | | | | | | #### Media @@ -138,7 +164,6 @@ Explanation of the columns: | Lazy-loading of images | Medium | High | 50% | Low | Image weight | | Optional site images (low-carbon site) | Medium | High | 1% | Low | Image weight | | YouTube lite embeds | High | High | 10% | Low | YouTube embed weight reduction | -| | | | | | | #### CMS features @@ -149,7 +174,6 @@ Explanation of the columns: | Reporting of performance scores in the CMS | Medium | High | 100% | Medium | CWV scores | | Duplicate files | Low | Low | 5% | Medium | Server-side energy usage | | Starter templates | Medium | High | 1% | Low | Server-side energy usage | -| | | | | | | #### Data processing @@ -178,34 +202,6 @@ Prior work outside Wagtail: - [Organic Basics - Low impact website](https://github.com/Organic-Basics/ob-low-impact-website) - [Granian – A Rust HTTP server for Python applications](https://github.com/emmett-framework/granian) -### Spread the word - -**Ideal outcome**: Buy-in from Wagtail users and wider industry on the importance of sustainability, and the role of Wagtail in this. - -Here are specific improvements within this area: - -- Refine Wagtail’s current sustainability statement, and make it more visible -- Organise sustainability-themed Wagtail events - - Sustainability sprint - - What’s New in Wagtail – sustainability edition - - Sustainability-themed Wagtail Space -- Create a sustainability team for Wagtail -- Publish case studies on tackling sustainability-related requirements on Wagtail projects -- Write a yearly sustainability report for Wagtail -- Improve the documentation’s "Sustainability considerations" page -- Rate possible [Wagtail hosting providers](https://github.com/wagtail/wagtail/wiki/Wagtail-Hosting-Providers) on sustainability considerations - -## Supporting activities - -Here are possible activities which we could take on to adjust this roadmap / support the delivery of the improvements outlined above. - -- Creation of a sustainability team for Wagtail -- Upskill of Wagtail contributors via [Green Software for Practitioners course](https://training.linuxfoundation.org/training/green-software-for-practitioners-lfc131/) -- Review of [Green Software Patterns](https://patterns.greensoftware.foundation/) relevance for Wagtail & Wagtail websites -- Review of [Web Sustainability Guidelines](https://w3c.github.io/sustyweb/) relevance for authoring tools: [Authoring Tool Guidance sustyweb#22](https://github.com/w3c/sustyweb/issues/22) -- Audit Wagtail websites with [Web Sustainability Guidelines](https://w3c.github.io/sustyweb/) -- Review Wagtail on [Green Software Maturity Matrix](https://docs.google.com/document/d/1wa2lliXQeH6HE1JHqwjTFuVndRUXzxGlbYXRtTQxF5o/edit) - ## Open questions ### Should the Wagtail project have a Net Zero target or other formal climate commitment? From 083b22812fb34ea64917ad37e5b19a64f8a8e698 Mon Sep 17 00:00:00 2001 From: Thibaud Colas Date: Mon, 27 Nov 2023 14:20:38 +0000 Subject: [PATCH 3/9] Adjust ahead of review --- text/090-sustainability-roadmap.md | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/text/090-sustainability-roadmap.md b/text/090-sustainability-roadmap.md index 280a4939..68a8e112 100644 --- a/text/090-sustainability-roadmap.md +++ b/text/090-sustainability-roadmap.md @@ -1,6 +1,6 @@ -# RFC 090: Sustainability roadmap +# RFC [90](https://github.com/wagtail/rfcs/pull/90): Sustainability roadmap -- RFC: 090 +- RFC: [090](https://github.com/wagtail/rfcs/pull/90) - Author: Thibaud Colas - Created: 2023-11-27 - Last Modified: 2023-11-27 @@ -22,7 +22,7 @@ With Wagtail being open source self-hosted software, the impact of this effort w ## Supporting activities -Here are possible activities which we could take on to adjust this roadmap / support the delivery of the improvements outlined above. +Here are possible activities which we could take on to support the creation and delivery of this roadmap. - Creation of a sustainability team for Wagtail - Upskill of Wagtail contributors via [Green Software for Practitioners course](https://training.linuxfoundation.org/training/green-software-for-practitioners-lfc131/) @@ -30,10 +30,12 @@ Here are possible activities which we could take on to adjust this roadmap / sup - Review of [Web Sustainability Guidelines](https://w3c.github.io/sustyweb/) relevance for authoring tools: [Authoring Tool Guidance sustyweb#22](https://github.com/w3c/sustyweb/issues/22) - Audit Wagtail websites with [Web Sustainability Guidelines](https://w3c.github.io/sustyweb/) - Review Wagtail on [Green Software Maturity Matrix](https://docs.google.com/document/d/1wa2lliXQeH6HE1JHqwjTFuVndRUXzxGlbYXRtTQxF5o/edit) +- Review of carbon footprint reductions attempted in past releases and already on the roadmap, tying them to the improvements listed below. +- Quantitative analysis of possible carbon footprint reductions to identify most promising improvements. ## Key measures -With a lot of room for climate change efforts to be data-driven, we propose the following key metrics to assess the impact of possible efforts across the three areas outlined above. +With a lot of room for climate change efforts to be data-driven, we propose the following key metrics to assess the impact of possible efforts across the three themes outlined above. ### Carbon footprint of Wagtail @@ -91,7 +93,7 @@ Prior work: **Ideal outcome**: Buy-in from Wagtail users and wider industry on the importance of sustainability, and the role of Wagtail in this. -Here are specific improvements within this area: +Here are specific improvements within this theme: - Refine Wagtail’s current sustainability statement, and make it more visible - Organise sustainability-themed Wagtail events @@ -108,14 +110,7 @@ Here are specific improvements within this area: **Ideal outcome**: a lower carbon footprint for Wagtail websites and Wagtail as a whole. -Here are specific improvements as a _first draft_. This is missing: - -- Highlights on which improvements are the most promising. -- A notion of status – some of those improvements have already happened. -- More improvements from more recent auditing of accessibility guidelines. -- A sense of how granular this should get vs. agreement on high-level principles. - -Explanation of the columns: +Here are specific improvements within this theme. Explanation of the columns: - **Scope clarity**: how well-defined is the improvement? Is it clear what the improvement is, and how it would be implemented? - **Impact**: how much of an impact would this improvement have on the carbon footprint of Wagtail websites? From 030fbec687780dda6bd8141d8a01f90688c1ce0c Mon Sep 17 00:00:00 2001 From: Thibaud Colas Date: Mon, 27 Nov 2023 15:29:25 +0000 Subject: [PATCH 4/9] Add definition of sustainability --- text/090-sustainability-roadmap.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/text/090-sustainability-roadmap.md b/text/090-sustainability-roadmap.md index 68a8e112..2a64ef9e 100644 --- a/text/090-sustainability-roadmap.md +++ b/text/090-sustainability-roadmap.md @@ -210,3 +210,15 @@ They’re great ways to drive ambitious climate action nonetheless. The [Web Sustainability Guidelines](https://w3c.github.io/sustyweb/) are a set of guidelines to help organizations reduce the environmental impact of their websites. They are currently authored by a _Community Group_ at W3C, and as such don’t have the authoritativeness of web standards. They’re still in draft, and not (yet) widely adopted. + +### What do we mean by "sustainability"? + +People mean different things when they talk about sustainability. +This is a good statement [from Wikipedia](https://en.wikipedia.org/wiki/Sustainability): + +Sustainability is a social goal for people to co-exist on Earth over a long time. +Specific definitions of this term are disputed and have varied with literature, context, and time. +Experts often describe sustainability as having three dimensions (or pillars): environmental, economic, and social, and many publications emphasize the environmental dimension. +In everyday use, sustainability often focuses on countering major environmental problems, including climate change, loss of biodiversity, loss of ecosystem services, land degradation, and air and water pollution. + +For Wagtail, the majority of current sustainability efforts are about environmental issues and climate change in particular, but guidelines like WSG have a much broader scope. From 1092bc806f94a74e378a856882a2ae73ae032ce4 Mon Sep 17 00:00:00 2001 From: Thibaud Colas Date: Tue, 28 Nov 2023 14:40:12 +0000 Subject: [PATCH 5/9] Reformat for more actionable reviews --- text/090-sustainability-roadmap.md | 70 ++++++++++++++++++++++-------- 1 file changed, 51 insertions(+), 19 deletions(-) diff --git a/text/090-sustainability-roadmap.md b/text/090-sustainability-roadmap.md index 2a64ef9e..cad15116 100644 --- a/text/090-sustainability-roadmap.md +++ b/text/090-sustainability-roadmap.md @@ -14,9 +14,9 @@ Creating this roadmap as an RFC will allow for community feedback, help contribu To help with planning, we track possible improvements across three themes: -1. Measure the carbon footprint of Wagtail -2. Spread the word -3. Reduce the carbon footprint of Wagtail +1. [**🔍 Measure the carbon footprint of Wagtail**](#measure-the-carbon-footprint-of-wagtail) +2. [**📣 Spread the word**](#spread-the-word) +3. [**📉 Reduce the carbon footprint of Wagtail**](#reduce-the-carbon-footprint-of-wagtail) With Wagtail being open source self-hosted software, the impact of this effort will be entirely dependent on the adoption of the improvements by Wagtail site implementers. @@ -65,11 +65,11 @@ Websites with specific climate commitments would count whether the targets are p ## Possible improvements -### Measure the carbon footprint of Wagtail +### 🔍 Measure the carbon footprint of Wagtail **Ideal outcome**: A community-wide understanding of how Wagtail websites and community efforts contribute to climate change. Methodologies we can confidently use to assess the impact of future work. -Here are specific improvements within this area: +Here are possible improvements within this area: - Create a methodology to measure the carbon footprint of Wagtail websites - Measure the carbon footprint of building Wagtail: @@ -81,7 +81,11 @@ Here are specific improvements within this area: - Create a methodology to measure the footprint of specific features - Define more granular carbon footprint KPIs that could be referenced on a regular basis -Prior work: +#### Top 3 improvements + +Here are the top three improvements we would recommend prioritizing: + +#### Prior work - [Results of the 2023 Wagtail Deployment Survey](https://wagtail.org/blog/2023-wagtail-deployment-survey/) - [Wagtail docs: Sustainability considerations](https://docs.wagtail.org/en/stable/advanced_topics/sustainability_considerations.html) @@ -89,11 +93,11 @@ Prior work: - [Greener coding - Making a 'gold' reference configuration with the Wagtail demo site](https://github.com/wagtail/wagtail/discussions/8843) - [Django Developers Survey 2022](https://lp.jetbrains.com/django-developer-survey-2022/) -### Spread the word +### 📣 Spread the word **Ideal outcome**: Buy-in from Wagtail users and wider industry on the importance of sustainability, and the role of Wagtail in this. -Here are specific improvements within this theme: +Here are possible improvements within this theme: - Refine Wagtail’s current sustainability statement, and make it more visible - Organise sustainability-themed Wagtail events @@ -106,11 +110,26 @@ Here are specific improvements within this theme: - Improve the documentation’s "Sustainability considerations" page - Rate possible [Wagtail hosting providers](https://github.com/wagtail/wagtail/wiki/Wagtail-Hosting-Providers) on sustainability considerations -### Reduce the carbon footprint of Wagtail +#### Top 3 improvements + +Here are the top three improvements we would recommend prioritizing: + +1. Create a sustainability team for Wagtail +2. Refine Wagtail’s current sustainability statement, and make it more visible +3. Publish case studies on tackling sustainability-related requirements on Wagtail projects + +#### Prior work + +- [Wagtail sustainability statement](https://wagtail.org/sustainability/) +- [Estimating Wagtail websites’ emissions](https://wagtail.org/blog/estimating-wagtail-websites-emissions/) +- [Evaluating the carbon footprint of Django and Wagtail sites | Django London](https://docs.google.com/presentation/d/1nt70OGv7yq-W0FOnaPeQAW42i6D1lMl3Fi_hEAADWgc/edit) +- [DjangoCon Europe 2021 – How to be a Djangonaut in a climate emergency](https://www.thegreenwebfoundation.org/talks/djangocon-eu-2021/) + +### 📉 Reduce the carbon footprint of Wagtail **Ideal outcome**: a lower carbon footprint for Wagtail websites and Wagtail as a whole. -Here are specific improvements within this theme. Explanation of the columns: +Here are possible improvements within this theme. Explanation of the columns: - **Scope clarity**: how well-defined is the improvement? Is it clear what the improvement is, and how it would be implemented? - **Impact**: how much of an impact would this improvement have on the carbon footprint of Wagtail websites? @@ -151,24 +170,24 @@ Here are specific improvements within this theme. Explanation of the columns: | Improvement | Scope clarity | Impact | Reach | Complexity | Measures | | --------------------------------------- | ------------- | ------ | ----- | ---------- | ------------------------------ | | Responsive images | High | High | 50% | Medium | Image weight | -| Optimised Wagtial renditions | High | High | 50% | Medium | Image weight | +| Optimised Wagtail renditions | High | High | 50% | Medium | Image weight | | AVIF images | High | High | 50% | Medium | Image weight | | WebP images | High | High | 50% | Medium | Image weight | | Lossless image optimisation (PNG) | High | High | 50% | Medium | Image weight | | Lossy image optimisation (PNG, MozJPEG) | High | High | 50% | Medium | Image weight | | Lazy-loading of images | Medium | High | 50% | Low | Image weight | | Optional site images (low-carbon site) | Medium | High | 1% | Low | Image weight | -| YouTube lite embeds | High | High | 10% | Low | YouTube embed weight reduction | +| Light YouTube embeds | High | High | 10% | Low | YouTube embed weight reduction | #### CMS features -| Improvement | Scope clarity | Impact | Reach | Complexity | Measures | -| ------------------------------------------ | ------------- | ------ | ----- | ---------- | ------------------------ | -| Dark mode | High | High | 50% | Low | Screen energy usage | -| Performance budgets in the CMS | Medium | High | 100% | Medium | CWV scores | -| Reporting of performance scores in the CMS | Medium | High | 100% | Medium | CWV scores | -| Duplicate files | Low | Low | 5% | Medium | Server-side energy usage | -| Starter templates | Medium | High | 1% | Low | Server-side energy usage | +| Improvement | Scope clarity | Impact | Reach | Complexity | Measures | +| ------------------------------------------- | ------------- | ------ | ----- | ---------- | ------------------------ | +| Dark mode | High | High | 50% | Low | Screen energy usage | +| Performance budgets in the CMS | Medium | High | 100% | Medium | CWV scores | +| Reporting of performance scores in the CMS | Medium | High | 100% | Medium | CWV scores | +| Duplicate files | Low | Low | 5% | Medium | Server-side energy usage | +| Starter templates focused on sustainability | Medium | High | 1% | Low | Server-side energy usage | #### Data processing @@ -182,6 +201,19 @@ Here are specific improvements within this theme. Explanation of the columns: | SQL performance optimisations | High | High | 50% | Medium | Server-side energy usage | | Rewrite performance-sensitive code in Rust | Medium | Medium | 100% | Medium | Server-side energy usage | +#### Top six improvements + +Here are the top six improvements we would recommend prioritizing: + +1. Scale-to-zero CMS database +2. Scale-to-zero CMS server +3. Light YouTube embeds +4. Reporting of performance scores in the CMS +5. Starter templates focused on sustainability +6. Support for static sites with 90+% of CMS features + +#### Prior work + Prior work in Wagtail: - [Willow v1.6: AVIF and support for optimizer libraries](https://github.com/wagtail/Willow/releases/tag/v1.6) From b39ac8ed3f6a280963a59c4cfab5904b0e77e143 Mon Sep 17 00:00:00 2001 From: Thibaud Colas Date: Tue, 28 Nov 2023 14:40:45 +0000 Subject: [PATCH 6/9] Fix heading links --- text/090-sustainability-roadmap.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/text/090-sustainability-roadmap.md b/text/090-sustainability-roadmap.md index cad15116..99f40ebd 100644 --- a/text/090-sustainability-roadmap.md +++ b/text/090-sustainability-roadmap.md @@ -14,9 +14,9 @@ Creating this roadmap as an RFC will allow for community feedback, help contribu To help with planning, we track possible improvements across three themes: -1. [**🔍 Measure the carbon footprint of Wagtail**](#measure-the-carbon-footprint-of-wagtail) -2. [**📣 Spread the word**](#spread-the-word) -3. [**📉 Reduce the carbon footprint of Wagtail**](#reduce-the-carbon-footprint-of-wagtail) +1. [**🔍 Measure the carbon footprint of Wagtail**](#-measure-the-carbon-footprint-of-wagtail) +2. [**📣 Spread the word**](#-spread-the-word) +3. [**📉 Reduce the carbon footprint of Wagtail**](#-reduce-the-carbon-footprint-of-wagtail) With Wagtail being open source self-hosted software, the impact of this effort will be entirely dependent on the adoption of the improvements by Wagtail site implementers. From 29287bf577b91bd3a8a5a6ff36cab1842c87ed1b Mon Sep 17 00:00:00 2001 From: Thibaud Colas Date: Tue, 28 Nov 2023 15:15:02 +0000 Subject: [PATCH 7/9] Reorder sub-sections --- text/090-sustainability-roadmap.md | 64 ++++++++++++++++++------------ 1 file changed, 38 insertions(+), 26 deletions(-) diff --git a/text/090-sustainability-roadmap.md b/text/090-sustainability-roadmap.md index 99f40ebd..ea611e51 100644 --- a/text/090-sustainability-roadmap.md +++ b/text/090-sustainability-roadmap.md @@ -69,7 +69,17 @@ Websites with specific climate commitments would count whether the targets are p **Ideal outcome**: A community-wide understanding of how Wagtail websites and community efforts contribute to climate change. Methodologies we can confidently use to assess the impact of future work. -Here are possible improvements within this area: +#### Top 3 improvements + +Here are the top three improvements we would recommend prioritizing: + +1. Create a methodology to measure the carbon footprint of Wagtail websites +2. Measure the carbon footprint of building Wagtail: Wagtail events +3. Establish a methodology to collect data about how many Wagtail websites there are and their characteristics + +#### All improvements + +Here all are possible improvements within this area: - Create a methodology to measure the carbon footprint of Wagtail websites - Measure the carbon footprint of building Wagtail: @@ -81,10 +91,6 @@ Here are possible improvements within this area: - Create a methodology to measure the footprint of specific features - Define more granular carbon footprint KPIs that could be referenced on a regular basis -#### Top 3 improvements - -Here are the top three improvements we would recommend prioritizing: - #### Prior work - [Results of the 2023 Wagtail Deployment Survey](https://wagtail.org/blog/2023-wagtail-deployment-survey/) @@ -97,7 +103,17 @@ Here are the top three improvements we would recommend prioritizing: **Ideal outcome**: Buy-in from Wagtail users and wider industry on the importance of sustainability, and the role of Wagtail in this. -Here are possible improvements within this theme: +#### Top 3 improvements + +Here are the top three improvements we would recommend prioritizing: + +1. Create a sustainability team for Wagtail +2. Refine Wagtail’s current sustainability statement, and make it more visible +3. Publish case studies on tackling sustainability-related requirements on Wagtail projects + +#### All improvements + +Here are all possible improvements within this theme: - Refine Wagtail’s current sustainability statement, and make it more visible - Organise sustainability-themed Wagtail events @@ -108,16 +124,10 @@ Here are possible improvements within this theme: - Publish case studies on tackling sustainability-related requirements on Wagtail projects - Write a yearly sustainability report for Wagtail - Improve the documentation’s "Sustainability considerations" page +- Create a sustainability improvements pitch deck to look for funding +- Attend sustainability events to represent Wagtail and find project sponsors - Rate possible [Wagtail hosting providers](https://github.com/wagtail/wagtail/wiki/Wagtail-Hosting-Providers) on sustainability considerations -#### Top 3 improvements - -Here are the top three improvements we would recommend prioritizing: - -1. Create a sustainability team for Wagtail -2. Refine Wagtail’s current sustainability statement, and make it more visible -3. Publish case studies on tackling sustainability-related requirements on Wagtail projects - #### Prior work - [Wagtail sustainability statement](https://wagtail.org/sustainability/) @@ -129,7 +139,20 @@ Here are the top three improvements we would recommend prioritizing: **Ideal outcome**: a lower carbon footprint for Wagtail websites and Wagtail as a whole. -Here are possible improvements within this theme. Explanation of the columns: +#### Top six improvements + +Here are our top six improvements we would recommend prioritizing: + +1. Scale-to-zero CMS database +2. Scale-to-zero CMS server +3. Light YouTube embeds +4. Reporting of performance scores in the CMS +5. Starter templates focused on sustainability +6. Support for static sites with 90+% of CMS features + +#### All improvements + +Here are all possible improvements within this theme. Explanation of the columns: - **Scope clarity**: how well-defined is the improvement? Is it clear what the improvement is, and how it would be implemented? - **Impact**: how much of an impact would this improvement have on the carbon footprint of Wagtail websites? @@ -201,17 +224,6 @@ Here are possible improvements within this theme. Explanation of the columns: | SQL performance optimisations | High | High | 50% | Medium | Server-side energy usage | | Rewrite performance-sensitive code in Rust | Medium | Medium | 100% | Medium | Server-side energy usage | -#### Top six improvements - -Here are the top six improvements we would recommend prioritizing: - -1. Scale-to-zero CMS database -2. Scale-to-zero CMS server -3. Light YouTube embeds -4. Reporting of performance scores in the CMS -5. Starter templates focused on sustainability -6. Support for static sites with 90+% of CMS features - #### Prior work Prior work in Wagtail: From adf2f0ca3f19931e6cfb41cf3057f423df805402 Mon Sep 17 00:00:00 2001 From: Thibaud Colas Date: Fri, 1 Dec 2023 10:48:05 +0000 Subject: [PATCH 8/9] Update text/090-sustainability-roadmap.md Co-authored-by: Will Barton --- text/090-sustainability-roadmap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/090-sustainability-roadmap.md b/text/090-sustainability-roadmap.md index ea611e51..301a421b 100644 --- a/text/090-sustainability-roadmap.md +++ b/text/090-sustainability-roadmap.md @@ -53,7 +53,7 @@ In particular, it should include all Scope 1, Scope 2, and Scope 3 emissions. As a median, average, or other measure of the statistical distribution of scores of Wagtail websites. The score would be a yet-to-be implemented measurement of how well a website conforms with the [Web Sustainability Guidelines (WSG)](https://w3c.github.io/sustyweb/). -At its most basic, it could be a count of how many WSG success criteria are "passed". 3. **Number of Wagtail websites with a Net Zero target**. +At its most basic, it could be a count of how many WSG success criteria are "passed". The WSG aren’t well established yet, so this would require a lot of R&D work, and collaboration with the community group behind the guidelines. From 06cf44f1054f7ebee7991d0abcfc47236bd1954d Mon Sep 17 00:00:00 2001 From: Thibaud Colas Date: Fri, 1 Dec 2023 11:38:46 +0000 Subject: [PATCH 9/9] Update text/090-sustainability-roadmap.md --- text/090-sustainability-roadmap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/090-sustainability-roadmap.md b/text/090-sustainability-roadmap.md index 301a421b..85de9471 100644 --- a/text/090-sustainability-roadmap.md +++ b/text/090-sustainability-roadmap.md @@ -132,7 +132,7 @@ Here are all possible improvements within this theme: - [Wagtail sustainability statement](https://wagtail.org/sustainability/) - [Estimating Wagtail websites’ emissions](https://wagtail.org/blog/estimating-wagtail-websites-emissions/) -- [Evaluating the carbon footprint of Django and Wagtail sites | Django London](https://docs.google.com/presentation/d/1nt70OGv7yq-W0FOnaPeQAW42i6D1lMl3Fi_hEAADWgc/edit) +- [Evaluating the carbon footprint of Django and Wagtail sites | Django London](https://thib.me/evaluating-carbon-footprint-django-wagtail) - [DjangoCon Europe 2021 – How to be a Djangonaut in a climate emergency](https://www.thegreenwebfoundation.org/talks/djangocon-eu-2021/) ### 📉 Reduce the carbon footprint of Wagtail