← Back to the problem

The builder's path

Five steps from a problem to its solution.

For: Web developers using CO2.js can't produce a standard Software Carbon Intensity score for their site.

“The unexamined life is not worth living.”

ὁ δὲ ἀνεξέταστος βίος οὐ βιωτὸς ἀνθρώπῳ

Socrates · Plato, Apology 38a

Routes to a solution

Six ways to take this forward

Each route is a different kind of journey, with real people and organisations to contact at each step, starting with those in every country.

  1. Step 1

    Build in the open

    Publish the code and invite contributors from the community.

  2. Step 2

    Fund the maintainers

    Sponsors, collectives and open source grants.

  3. Step 3

    Get it adopted

    Civic tech groups and public bodies take it up.

What this problem needs

Ideas, sources and tools for this problem, from first interviews to funding.

  • Analytics
  • Web

Ideas to explore

  • Idea 1Separate sci() helperImplement the SCI formula as a small pure function, then add an example that feeds it CO2.js page-visit estimates.
  • Idea 2Comparison pageA demo page where developers change inputs and see how the SCI score moves.

Specific to this problem

Talk to first

Starter prompt

Built from this problem's brief. Paste it into Claude or any AI assistant.

Help me design and build a first working prototype for this problem in Anywhere.

Problem: Web developers using CO2.js can't produce a standard Software Carbon Intensity score for their site.
Who it hurts: Developers who use CO2.js, the Green Web Foundation's JavaScript library, to estimate website emissions.
The moment it hurts: When a team wants to report emissions per page visit in a format others recognize.
What people do today: CO2.js gives carbon estimates, but turning them into an SCI score is left to each developer.
Why it is still unsolved: The API design is still open: an option on the existing model or a separate SCI function.
What solved looks like: An sci() function in CO2.js that takes operational emissions, embodied emissions and a functional unit and returns a score, with unit tests based on the SCI specification and a documented page-visit example.
Where: Anywhere

First, list what you would need to learn from the people affected before building, as interview questions.
Then propose the simplest version that would help, the screens or messages it needs, and the data it would use.
Keep it cheap to run, accessible, and respectful of people's privacy. Flag anything you are unsure about instead of guessing.
  1. Understand it

    Talk to the people who live it before you build.

    “Knowledge itself is power.”

    Ipsa scientia potestas est.

    Francis Bacon · Meditationes Sacrae (1597)
  2. Prototype with AI

    Get a working version in front of people fast.

    Using AI is not cheating. Every tool carries the work of the people who made it, and using it well is how knowledge has always moved forward. The thinking, the care for the people who live the problem, and the judgement are still yours.

    “The Analytical Engine weaves algebraical patterns just as the Jacquard-loom weaves flowers and leaves.”
    Ada Lovelace · Notes on Menabrea's Sketch of the Analytical Engine, Note A (1843)
  3. Find the data

    Open data that fits this problem.

    “In the fields of observation chance favours only the prepared mind.”

    Dans les champs de l'observation le hasard ne favorise que les esprits préparés.

    Louis Pasteur · lecture at the University of Lille, 7 December 1854
  4. Build it

    Tools matched to what this problem needs.

    “If I have seen further it is by standing on the shoulders of Giants.”
    Isaac Newton · letter to Robert Hooke, 5 February 1675/6
  5. Launch and get support

    Ship it responsibly, and find help and funding.

    “While we teach, we learn.”

    Homines dum docent discunt.

    Seneca · Letters to Lucilius 7.8

Kit written for this problem from its brief; every link was checked. Links go to each provider's own site. Zetema is not paid for any listing.