GreenFrame Is Open-Source
Back in 2020, we looked for a tool to assess our coding practices concerning carbon emissions. We found nothing convincing, so we decided to build our own. After all, it's our job to build innovative digital products. We thought: "It's probably a matter of days".
Classic rookie mistake. It took us a year and a half, including a six-month collaboration with a French research institute, to come up with a public demo of GreenFrame, and another 6 months to release GreenFrame.io, a SaaS version of the tool. It turns out it's incredibly difficult to build a tool that produces reproducible, accurate, and actionable results.
Fast-forward to today: after a huge number of demos, many conversations with our customers, and a lot of feedback, we're not seeing a large enough growth in subscriptions. We believe we've found a problem-solution fit, but we also know that we haven't found the product/market fit yet.
However, we've learned a lot in the process.
Our customers are mostly early adopters who take global warming as a serious issue. They are actively looking to minimize their digital carbon emissions. But to do so, they must invest to learn how to build more sustainable software. In return, they improve their brand and employee satisfaction. But a) it's hard to evaluate, and b) the same can be obtained by using a good old greenwashing solution.
To put it simply, the benefit of reducing a company's emissions is currently not worth the cost of doing so. Many countries are thinking about passing laws to force companies into disclosing their carbon footprint (in the EU, in 2025), but most companies will wait until the last moment to comply (remember GDPR?).
Also, we're not the only service offering carbon accounting for web apps. We've learned that all competing services struggle hard to make a living. The market is simply not there yet.
Finally, while we are capable of measuring the carbon footprint of websites, we're still far from producing personalized advice to minimize that footprint. That's because the guides of "good practices" to reduce that footprint (exhibit 1, 2, 3, 4, 5) are not experimentally validated, or work in only a subset of cases.
We could simply wait for the laws to pass and then sell our product to the mass of new customers that will be forced to invest in carbon accounting. But the problem is urgent.
We don't want to wait, because global warming is the single most urgent problem of our time. We need to act now. So we've decided to open-source the core of GreenFrame: the collector and the model.
The collector runs a user scenario on a website running in Docker containers (or a Kubernetes cluster), and collects system metrics from all the containers. The model converts these metrics into energy consumption and carbon emissions. These two items come packaged as a command-line tool, greenframe-cli. Usage couldn't be simpler:
$ greenframe analyze https://marmelab.com ✅ main scenario completed The estimated footprint is 0.038 g eq. co2 ± 10.3% (0.085 Wh).
greenframe-cli is ideal for monitoring and reducing the carbon footprint of a web application in a Continous Integration (CI) workflow. It has all the options that the greenframe.io service proposes:
- custom scenarios
- full-stack analysis
- the ability to use an ad blocker
- the ability to define a threshold
You can use it today, for free, even on commercial projects.
greenframe-cli offers a CLI interface. If you want a web experience, with deep insights, zero installation, and a view of your carbon footprint reduction efforts over time, you can still use greenframe.io. We'll continue to invest to make it more user-friendly and to add new features.
We used the Elastic License for
greenframe-cli. It is an open-source license that forbids building a competing product to GreenFrame.io, i.e. a carbon monitoring tool for websites. If you want to do that, contact us to buy a commercial license.
We hope that the "open-core" model, with a free core and a paid version for enterprise users, will allow us to make GreenFrame sustainable. After all, it worked pretty well for react-admin, our flagship developer tool.
But most of all, we hope that open-sourcing GreenFrame will allow thousands of developers to change their coding practices for the greater good. This is the best way to address the problem of digital carbon footprint as soon as possible.