Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cnumr/best-practices

115 Web Ecodesign Best Practices
https://github.com/cnumr/best-practices

Last synced: 3 months ago
JSON representation

115 Web Ecodesign Best Practices

Awesome Lists containing this project

README

        

# 115 best practices of web Eco-Design

## The project

This web ecodesign reference content has been published by Frédéric Bordage / GreenIT.fr at Eyrolles under the name:

1. “écoconception web : les 100 bonnes pratiques” in 10/2012
2. “écoconception web : les 115 bonnes pratiques, 2ème édition” in 09/2015
3. “écoconception web : les 115 bonnes pratiques, 3ème édition” in 04/2019
4. “écoconception web : les 115 bonnes pratiques, 4ème édition” in 05/2022

We would like to express our sincere thanks to all the contributors who took part in the development and evolution of this repository.

## Requirements

Given the continuous evolution of the web, this repository needs to be regularly updated.
Any proposal or idea for improvement, modification, or removal is welcome.

## How to contribute ?

Please read [the contributor's guide](CONTRIBUTING.md).

## Discussions shortcuts:

To simplify your searches, don't forget to use the available filters on the discussions page.

- :infinity: [List of all discussions](https://github.com/cnumr/best-practices/discussions)
- :heavy_plus_sign: [List of discussions for adding BP](https://github.com/cnumr/best-practices/discussions?discussions_q=label%3Aajout)
- :memo: [List of discussions for modifying BP](https://github.com/cnumr/best-practices/discussions?discussions_q=label%3Amodification)
- :heavy_multiplication_x: [List of discussions about BP removal](https://github.com/cnumr/best-practices/discussions?discussions_q=label%3Asuppression)

## Best Practices list

* [Eliminate non-essential features](/chapters/BP_001_en.md)
* [Accurately quantify the dimensions of features and components](/chapters/BP_002_en.md)
* [Optimize the user journey](/chapters/BP_003_en.md)
* [Avoid autocomplete in favor of other techniques to facilitate user input](/chapters/BP_004_en.md)
* [Prefer a simple, clean design, adapted to the web](/chapters/BP_005_en.md)
* [Use the « mobile first» strategy and/or consider Adaptive loading](/chapters/BP_006_en.md)
* [Respect the Back/Forward cache](/chapters/BP_007_en.md)
* [Use an asynchronous process when possible](/chapters/BP_008_en.md)
* [Limit the number of HTTP requests](/chapters/BP_009_en.md)
* [Store static data locally](/chapters/BP_010_en.md)
* [Prefer a custom solution over a CMS ](/chapters/BP_011_en.md)
* [Prefer static web pages](/chapters/BP_013_en.md)
* [Create a modular application architecture](/chapters/BP_014_en.md)
* [Choose the most appropriate technologies](/chapters/BP_015_en.md)
* [Use performance-oriented application forks](/chapters/BP_016_en.md)
* [Choose appropriate data formats](/chapters/BP_017_en.md)
* [Reduce the number of domains serving resources](/chapters/BP_018_en.md)
* [Replace official social networks share buttons ](/chapters/BP_019_en.md)
* [Divide CSS](/chapters/BP_021_en.md)
* [Limit the number of CSS](/chapters/BP_022_en.md)
* [Use CSS instead of images](/chapters/BP_023_en.md)
* [Write efficient CSS selectors](/chapters/BP_024_en.md)
* [Group similar CSS declarations](/chapters/BP_025_en.md)
* [Use shortened CSS notations](/chapters/BP_026_en.md)
* [Provide a print CSS ](/chapters/BP_027_en.md)
* [Prefer standard fonts](/chapters/BP_029_en.md)
* [Prefer glyphs over images](/chapters/BP_030_en.md)
* [Validate pages with W3C tools](/chapters/BP_031_en.md)
* [Externalize CSS and Javascript](/chapters/BP_032_en.md)
* [Avoid resizing images in the browser](/chapters/BP_034_en.md)
* [Avoid using raster images for the interface](/chapters/BP_035_en.md)
* [Optimize vector images](/chapters/BP_036_en.md)
* [Use lazy loading](/chapters/BP_037_en.md)
* [Use partial content reloading](/chapters/BP_038_en.md)
* [Avoid JavaScript / CSS animations](/chapters/BP_039_en.md)
* [Only use essential parts of Javascript libraries and CSS frameworks](/chapters/BP_040_en.md)
* [Avoid modifications during DOM traversal](/chapters/BP_041_en.md)
* [Hide DOM elements while they are being modified](/chapters/BP_042_en.md)
* [Minimize repaint (appearence) and reflow (layout)](/chapters/BP_043_en.md)
* [Use event delegation](/chapters/BP_044_en.md)
* [Modify several CSS properties at once](/chapters/BP_045_en.md)
* [Validate your code with a Linter](/chapters/BP_046_en.md)
* [Cache frequently accessed objects in Javascript](/chapters/BP_049_en.md)
* [Reduce DOM access via JavaScript](/chapters/BP_054_en.md)
* [Use all levels of CMS cache](/chapters/BP_057_en.md)
* [Optimize and generate media before importing them in a CMS](/chapters/BP_058_en.md)
* [Encode audio files outside of the CMS](/chapters/BP_060_en.md)
* [Cache often-used computed Data](/chapters/BP_064_en.md)
* [Remove all warnings and notices](/chapters/BP_070_en.md)
* [Avoid performing SQL queries inside a loop](/chapters/BP_072_en.md)
* [Avoid opening database connections when not necessary](/chapters/BP_073_en.md)
* [Optimize database queries](/chapters/BP_075_en.md)
* [Avoid transferring large amounts of data for processing tasks](/chapters/BP_076_en.md)
* [Minify CSS, JavaScript, HTML, and SVG files](/chapters/BP_077_en.md)
* [Compress CSS, Javascript, HTML and SVG files](/chapters/BP_078_en.md)
* [Combine CSS and JavaScript files](/chapters/BP_079_en.md)
* [Optimize images](/chapters/BP_080_en.md)
* [Optimize cookies size](/chapters/BP_082_en.md)
* [Use HSTS Preload list over 301 redirects](/chapters/BP_084_en.md)
* [Have an end of life strategy for the website](/chapters/BP_085_en.md)
* [Choose an eco-friendly web-host](/chapters/BP_086_en.md)
* [Choose an eco-friendly electricity provider](/chapters/BP_087_en.md)
* [Adapt service quality and availability level](/chapters/BP_088_en.md)
* [Use virtualized servers](/chapters/BP_089_en.md)
* [Optimize Server Energy Efficiency](/chapters/BP_090_en.md)
* [Install the bare minimum on the servers](/chapters/BP_091_en.md)
* [Put the whole caches in RAM (opcode and kvs)](/chapters/BP_092_en.md)
* [Store data in the cloud](/chapters/BP_093_en.md)
* [Host resources (CSS/JS) on a cookie-free domain](/chapters/BP_094_en.md)
* [Avoid redirects](/chapters/BP_095_en.md)
* [Display static error pages](/chapters/BP_096_en.md)
* [Use asynchronous servers](/chapters/BP_097_en.md)
* [Use a CDN](/chapters/BP_098_en.md)
* [Use a HTTP cache](/chapters/BP_099_en.md)
* [Add Expires or Cache-Control headers](/chapters/BP_101_en.md)
* [Cache Ajax responses](/chapters/BP_102_en.md)
* [Reduce server logs as much as possible](/chapters/BP_103_en.md)
* [Disable Apache DNS lookup](/chapters/BP_104_en.md)
* [Apache Vhost : disable AllowOverride](/chapters/BP_105_en.md)
* [Disable binary logs](/chapters/BP_106_en.md)
* [Compress documents](/chapters/BP_107_en.md)
* [Optimize PDF files](/chapters/BP_108_en.md)
* [Avoid sending heavy and redundant emails](/chapters/BP_109_en.md)
* [Only use double opt-in files](/chapters/BP_110_en.md)
* [Reduce emails size](/chapters/BP_111_en.md)
* [Adapt audio formats to listening contexts](/chapters/BP_112_en.md)
* [Adapt texts to the web](/chapters/BP_113_en.md)
* [Adapt videos to watching contexts](/chapters/BP_114_en.md)
* [Use less analytics tools and limit data collection](/chapters/BP_4001_en.md)
* [Limit the use of animated GIFs](/chapters/BP_4002_en.md)
* [Avoid autoplay for videos and audio content](/chapters/BP_4003_en.md)
* [Use CSS containers](/chapters/BP_4004_en.md)
* [Provide textual alternatives to multimedia content](/chapters/BP_4005_en.md)
* [Prefer HTTP/2 over HTTP/1](/chapters/BP_4006_en.md)
* [Save bandwidth with ServiceWorker](/chapters/BP_4007_en.md)
* [Set up an efficient sitemap](/chapters/BP_4008_en.md)
* [Ensure compatibility with older devices and software configurations](/chapters/BP_4009_en.md)
* [Reduce stored data volume to the bare minimum.](/chapters/BP_4011_en.md)
* [Set up a data expiration and deletion policy.](/chapters/BP_4012_en.md)
* [Limit canvas use](/chapters/BP_4013_en.md)
* [Make sure that user journeys allow users to carry out their intended action](/chapters/BP_4014_en.md)
* [Have page titles and meta descriptions relevant to pages content](/chapters/BP_4015_en.md)
* [Use the latest language version](/chapters/BP_4016_en.md)
* [Only load data/code when necessary](/chapters/BP_4017_en.md)
* [Delete unused features](/chapters/BP_4018_en.md)
* [Prefer PWAs over native mobile applications that are similar to the website](/chapters/BP_4019_en.md)
* [Avoid blocking times caused by long running JavaScript processes](/chapters/BP_4020_en.md)
* [Set up an elastic architecture](/chapters/BP_4021_en.md)
* [Limit HTTP API calls](/chapters/BP_4022_en.md)
* [Avoid using carousels](/chapters/BP_4030_en.md)
* [Set up a content end-of-life plan](/chapters/BP_4031_en.md)
* [Set up a "Circuit breaker"](/chapters/BP_4032_en.md)
* [Use "Request collapsing" as much as possible](/chapters/BP_4033_en.md)
* [Rely on managed services](/chapters/BP_4034_en.md)
* [Prefer pagination over infinite scrolling](/chapters/BP_4035_en.md)
* [Take care of your website regularly](/chapters/BP_4036_en.md)
* [Choose the right theme and limit CMS extensions](/chapters/BP_4037_en.md)
* [Secure administration access](/chapters/BP_4038_en.md)
* [Do not display documents within pages](/chapters/BP_4039_en.md)

## Licence

The sources and contents of this project are [protected](LICENCE.md)