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

https://github.com/overbrowsing/co2-shield

Assess the environmental impact of your project's web page and showcase it in your GitHub project as a Shields.io badge.
https://github.com/overbrowsing/co2-shield

shields-io sustainability

Last synced: 7 months ago
JSON representation

Assess the environmental impact of your project's web page and showcase it in your GitHub project as a Shields.io badge.

Awesome Lists containing this project

README

          

[![NPM version](https://img.shields.io/npm/v/co2-shield.svg)](https://www.npmjs.com/package/co2-shield)
[![npm](https://img.shields.io/npm/dt/co2-shield.svg)](https://www.npmtrends.com/co2-shield)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github)

# CO₂ Shield

## Overview

The CO₂ Shield allows you to assess the environmental impact of your project's web page and showcase it in your GitHub project as a [Shields.io](https://shields.io") badge. It is powered by [Beacon](https://digitalbeacon.co), which utilises the [OneByte model](https://theshiftproject.org/en/lean-ict-2) developed by The Shift Project to calculate emissions.

## Live Application

You don't need to download or initialise anything to use this application. Visit the live version here:

[**→ Open Application**](https://overbrowsing.com/projects/co2-shield)

## Features

- **Badge Creation**: Generates a badge using the [Shields.io](https://shields.io) service.
- **Markdown Output**: Provides a markdown snippet to embed the badge in project documentation.
- **Rating Details**: Displays the CO₂e emissions per webpage view, along with a breakdown of ratings.

## How to Use

1. **Input a URL**: Type or paste the webpage URL you want to analyse. Ensure it's a valid web address.
2. **Submit the Form**: Press 'Enter' or click 'Submit'. The generator fetches CO₂e data from [Beacon](https://digitalbeacon.co).
3. **View Results**: See the badge, the markdown snippet, and the detailed CO₂e emissions data.
4. **Copy Markdown**: Use the 'Copy' button to copy the markdown and paste it into your project.
5. **Reset**: Use the 'Reset' button to analyse another webpage.

## Example

Here's an example of a badge preview and the markdown generated by the application for our website's homepage [overbrowsing.com](https://overbrowsing.com):

**Preview**

[![CO₂ Shield](https://img.shields.io/badge/CO₂-A+_0.008g-58C521)](https://overbrowsing.com/projects/co2-shield)

**Markdown**

```markdown
[![CO₂ Shield](https://img.shields.io/badge/CO₂-A+_0.008g-58C521)](https://overbrowsing.com/projects/co2-shield)
```

## Rating System

*These measurements are for new visitors. Returning visitors have a lower footprint due to caching.*

| Rating | Color | CO₂e Emissions per View |
| ------ | --------------------------------------------------------------- | ----------------------- |
| A+ | ![A+](https://via.placeholder.com/15/58C521/000000?text=+ "A+") | Less than 0.095g |
| A | ![A](https://via.placeholder.com/15/20AE69/000000?text=+ "A") | Less than 0.185g |
| B | ![B](https://via.placeholder.com/15/2D8EAC/000000?text=+ "B") | Less than 0.34g |
| C | ![C](https://via.placeholder.com/15/C89806/000000?text=+ "C") | Less than 0.49g |
| D | ![D](https://via.placeholder.com/15/C05328/000000?text=+ "D") | Less than 0.65g |
| E | ![E](https://via.placeholder.com/15/B71E1E/000000?text=+ "E") | Less than 0.85g |
| F | ![F](https://via.placeholder.com/15/652A2A/000000?text=+ "F") | Above 0.85g |

## Installation

### Option 1. Install via NPM

To use CO₂ Shield in your project, you can install it via NPM:

```bash
npm install co2-shield
```

After installation, import and use the library in your project:

```javascript
import CO2Shield from "co2-shield";

const co2Shield = new CO2Shield("app-container");
co2Shield.initialize();
```

*Ensure you are running your project with a bundler like Webpack, Vite, or Parcel that supports ES modules.*

### Option 2. Install for Vanilla JS (Using a `` Tag)

If you prefer not to use a package manager, you can include the library directly in your HTML using a CDN like [UNPKG](https://unpkg.com):

```html
<!DOCTYPE html>
<html lang="en-GB">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>CO₂ Shield</title>
</head>

<body>
<!-- 1. Create the App Container -->
<div id="app-container"></div>

<!-- 2. Add the Library via CDN -->
<script src="https://unpkg.com/co2-shield/dist/index.js" type="module">