Website ethical commitments
Posted on: Monday, Dec 28, 2020 - Reading time: 4 minutes.Ethical commitments
The web has become a slow, bloated mess thanks to the increase in popularity of embed fonts, ready-to-use website frameworks, huge javascript libraries, and user tracking. Most developer choose these tools because they are easy to use, but in return, each tool contributes to ever-increasing page sizes and datacenter power demand all around the world.
These graphs from the HTTP Archive project paint a very dire portrait of the situation. The increase of page size over the years is absolutely crazy and unsustainable.
This website is an answer to that issue. It is my very own test bench for technologies, software and best practices to offer pages that load extremely fast, use strong security, and have the smallest possible footprint on this environment. Oh, and did I mention the whole website fits on a standard 3.5" floppy?
Feel free to use this page as a checklist for building/improving your own website, and don’t hesitate to contact me if you think I could add more things to the list. Let’s make the web faster, greener, and more secure… one website at a time!
This website (all pages and resources) weighs 411Kib (Last updated - 2022-05-03)
The homepage weighs 2.65KB (Last updated - 2022-05-03)
This website and I are Carbon-Negative. Read more
Commitment 1: Choose hosting and technologies that have a very low environmental impact
Goal | Done | Justification |
---|---|---|
This web page is cleaner than 100% of web pages tested by Web Site Carbon Less carbon emissions | β | Test it here |
The website is certified green by The Green Web Foundation Less carbon emissions | β | Test it here |
The operating system and software used to run the website are up-to-date More efficient use of energy | β | This website is hosted by Cloudflare’s Workers, which uses bleeding-edge tech and optimizes the use of resources - Source |
Content is placed as close as possible to the majority of the websiteβs visitors Less hops = less devices = less energy consumed | β | This website is hosted by Cloudflareβs Workers, which place contents as close as possible to visitors, no matter where in the world they are located. |
HTTP/2 with ALPN is used to serve content Efficient connection, reduced latency, less energy used | β | Test it here |
HTTP/3 is used to serve content Efficient connection, reduced latency, less energy used | β | Test it here |
Content is compressed using gzip Faster load times, less energy used | β | |
Optional - The website does not use server resources when nobody visits it Less energy used | β | Because of the way Cloudflare Workers are built, and because this website only serves static files, resources are used only when a page is visited. - Source |
Optional - Content is deployed once and served as static pages No code processor, no database = Less energy used | β | This website serves static HTML files generated by Hugo. |
Commitment 2: Aim for the lowest possible page/content size to reduce the website's footprint and offer fast load times
Goal | Done | Justification |
---|---|---|
Images are served in modern, efficient formats (AVIF, WebP) Smaller footprint, faster load times | β | Each image is displayed using the “picture” tag, and has 2 versions available: WebP and AVIF. JPEG is removed now that the latest versions of all major browsers support WebP. |
Images are obsessively compressed to reduce page size Smaller footprint, faster load times | β | Lossy compression was used when converting images |
The website doesnβt use any embed fonts Smaller footprint, faster load times | β | |
The website avoids the use of javascript and javascript frameworks Smaller footprint, faster load times | β | Zero fonts |
The quantity of code (HTML/CSS) is reduced to the minimum Smaller footprint, faster load times | β | Zero scripts |
The code is aggressively minimized Smaller footprint, faster load times | β | |
The website does not implement code to support old/deprecated browsers Smaller footprint, faster load times | β |
Commitment 3: Offer the best security / encryption to visitors
Goal | Done | Justification |
---|---|---|
The website only serves content using HTTPS | β | HTTP > HTTPS redirection is in place. |
TLS1.3 is used to ensure the best possible security | β | Test it here |
Old versions of TLS/SSL are disabled (<=TLS1.2) | β | Test it here |
DNSSEC is enabled | β | Test it here |
HSTS is enabled | β | Test it here |
HSTS preloading is enabled and active on all major browsers | β | Test it here |
DNS CAA policy is deployed | β | Test it here |
The server key uses Elliptic Curve | β | Test it here |
The website has a strong Content Security Policy and maintains a score of A+ to Mozilla’s Observatory test | β | Score of 130/100 Test it here |
The website uses a firewall to reject bot requests and suspicious requests Reducing bad requests = less energy used | β | Cloudflare |
The website is protected against DDoS attacks Reducing bad requests = less energy used | β | Cloudflare |
This website offers a security.txt file Standard allwoing to easily contact me to report a security vulnerability | β | Follows the proposed RFC standard. Link is also displayed in the footer of the website. |
Commitment 4: Offer strong privacy to visitors
Goal | Done | Justification |
---|---|---|
The website passes all tests on the Blacklight Website Privacy Inspector | β | Test it here |
This website offers a strong Privacy Policy to its visitors | β | This website’s privacy policy is based on the GDPR principles. It also explains how I process my customer’s personal information outside this website. |
Commitment 5: Use open-source software only
This website was built using open-source software only.
- I use Hugo and Wrangler to build and publish this static website to Cloudflare Workers.
- I use Firefox and Chromium for testing.
Commitment 6: Be accessible
This website was built using open-source software only.
- Every page of this website has a score of 100 to the lighthouse “Accessibility test”
- Colors have a sufficient contrast ratio
- Every image has an alternative text
- Heading tags are properly used