Moving toward sustainability in our best practices

Hello all,

While we have several crosscutting concerns in mind in our development process (e.g., accessibility), the questions of sustainability is never mentioned explicitly.
This proposal does not aim at proposing concrete solutions, but to agree on the principle so that contributors can more easily take actions without having to argue on the basis.

Why

The internet currently produces approximately 3.7% of global carbon emissions, which are rising in line with our hunger to consume more data.
By making XWiki more sustainable, we have a chance to have a positive impact on all XWiki instances.

To be more concrete, the promises of sustainable development includes:

  • Reduced terminal obsolescence
  • Battery conservation
  • Reduced mobile data consumption
  • Protection of personal data
  • Faster loading times
  • Optimized referencing
  • Better accessibility

How

I propose to progress by studying the resources listed below (or any other resource), and to do individual proposal for each topic.
Note that in my opinion we are already good on several aspects (e.g., accessibility, minimizing css…) and for those we can consider that our current best practices are already enough, or we can improve them further.

Example of actions are:

  • introduce relevant metrics gathering to help decision
  • improve our best practices
  • propose/provide improvements to companies using XWiki in production (e.g., XWiki Standard does not rely heavily on images, but some instances can and could benefit from some tooling to make images smaller)
  • improve our design process to anticipate sustainability needs

Resources

Metrics

Online reading

Books

  • Sustainable Web Design - Tom Greenwood
  • Designing for Sustainability - Tim Frik

Conclusion

What do you think of making sustainability a crosscutting concerns of our development process, and to aim at incrementally progress toward a more sustainable XWiki?

1 Like

In my opinion most of the promises of sustainable development are beneficial for us as a project and we work towards them already. However it’s lacking some documentation, and I think adding a new item on the dev.xwiki.org home page would be a good start. I know that at least this’d be really useful for the accessibility part :smiley:

As of now, except for a couple lines here and there, there’s nowhere to record our objectives and improvements related to accessibility without it feeling out of place or like a sidenote. I think having an “Accessibility” page that contains everything to know on the topic related to XWiki would be an improvement. As a crosscutting concern, it can be mentionned in a lot of pages, but having a hub to sum-up our intentions and efforts would be better.


As far as I understand optimized referencing is not something we are really aiming for, right?


I think that one of the first things we want to do is to settle on a formal definition of the “sustainable development” we’d like to reach. This choice in itself will rule out some topics, and if possible, I’d rely on a definition made by experts and/or a standard definition. If the definition you proposed is one of such, I’d like to know where it comes from so I can judge the bias on it and think about a potential oversight. It might be overkill, but this definition can become the fondation of an important facet in our development process moving forward, so I think it’s worth the time :slight_smile:


+1 to incrementally progress towards a more sustainable XWiki

Thank you for opening this proposal,
Lucas C.

Good idea, +1 for that.

One important note: IMO we should not aim just for XWiki to be more sustainable at runtime (ie less resource hungry basically) but also during its development phase (for example, I believe that our CI is probably quite resource intensive and there might be ways to reduce that while keeping the same quality level to the XWiki product).

+1 for you (or anyone interested) to research more about the topic and propose some tangible actions.

Thx

I doubt anyone is against using less resources in general, but It’s not very clear to me what you are exactly proposing.

Are you suggesting dedicating part of the roadmap to that ?

For me the first step is to have it written somewhere so that we can’t ignore it.

Then, this could influence the decision process for future works. Some examples:

  • the default embedding of features relying on LLMs
  • the use of APIs only available on modern devices

Also, for now we tend to wish to use less resources, but we have no metrics to measure how we do in this regard which makes it difficult to effectively achieve that goal.

If we have the dedicated resource and some concrete actions to do, definitely.

OK, so you are focusing more on adding a criterion to judge the design of future features and improvements than improving existing stuff ?

My point was more related to improving existing stuff, and the fact that it takes time, and just stating that using less resources is a priority is pretty useless without time dedicated to it.

It could also be used as a criteria to decide what to improve first indeed.

Since we don’t have proper financing for this kind of things for now, I’m focusing on avoiding to make things worse when we introduce new things.
But I believe if will be easier to raise some money to work on sustainability if we already started to think and work on the topic beforehand.

We do dedicate some time to improving performances of existing features (and I believe that this indirectly improves co2).

Anything added is going to make things worse. At best you can limit the co2 cost of additional features by making them performant. I don’t really see how we can keep XWiki being competitive and not add new features (like AI features).

A mitigating factor is our extension-based approach where new features are added as extensions that are not installed by default (and thus not used by users who don’t need them).

Working on having an XS distribution as small as possible is probably a good direction (in addition to being as fast as possible).

I haven’t read any doc related to green IT yet but I’m curious to understand what are our levers in addition to perfs & size (since I don’t consider limiting feature a real option).

Thanks!

Thanks to the latest blog post by Adrian Roselli, I found out about the Web Sustainability Guidelines (WSG). This is still just a draft but it might be interesting to keep an eye on the initiative :slight_smile:
This could become a good resource for formalizing and keeping track of some of the sustainability improvement we make.

I confirm, it’s far from being a w3c standard but still a very good read!

The content of this blog post seems short-sighted to me. It may be true as of today but I don’t believe it’ll be the case in a couple of years from now (even a couple of months).

Very interesting. Also a lot of work to map each items to our practices. I’ve skimmed quickly and found that we had best practices/dev practices in place for all the items I’ve read. Now I’m sure we can do better on some and it’s likely that there are items that we don’t do properly yet.

I’d be interesting that we start a draft document on xwiki.org to map each item to our practices and define a rating of how well (or badly) we do on each, pointing to links where our practice is documented.

+1, sounds like a good starting point. Where do you think this page should go?
Btw, Sustainability Guidelines Archive - Sustainable Web Design looks almost identical to Sustainability Guidelines Archive - Sustainable Web Design but with a nicer UI.