The Problem

Reporters have the daunting challenge of not just covering a static dataset, but rapidly changing data with both national and international implications. It's a global story where we all need to learn slightly more complex statistics (think exponential curves) in order to make an invisible virus visible.

The standard method of referencing this data has been images. The largest websites can develop javascript-powered charts, and there are some great all in one dashboards. But mostly we just share through images.


  1. If the image isn't replaced, then the data will quickly become incomplete and possibly misleading given the exponential nature of growth.

  2. Everyone is doing their individual region-specific stories, but this pandemic is very much international and static images don't encourage international comparisons.

Our solution

coronavirus-charts : accessible citations to covid-19 data and models.

Each citation returns a webpage with a collection of matching charts that have been updated to the most recent data.

Citations are just links that you add to your content


You can even use it for research

  • Need to quickly check a stat for a specific location? Going to is a good place to start.
  • Need to check a specific set of stats regularly? Just bookmark a direct link for a lightweight reference.
  • Find a citation on another website? adding your country-code to the end of the citation will add your country to the comparison.

The data

We don't collect any data ourselves, my prediction was that there would be many competent teams developing data endpoints to enable innovation, and so far I've discovered:

The whole system is intended to enable easily querying multiple endpoints, and then transforming the data into a collection of Facts that we can then use in a rules engine to generate charts.

How it works - consider, "/fr/us"

  1. We first check to see if we have any reports associated with the country-code "fr"
  2. There is, so we generate the relevant charts
  3. Then we repeat for the next part, "us"
  4. After we generate all that we can, we combine them and return a webpage

( A more in-depth diagram can be found at here )

Marketing and Distribution

  • Direct outreach to reporters and podcasters covering the topic
  • Hopefully the onboarding is easy enough that it spreads organically
  • Articles published with a citation will naturally share the tool
  • Devpost does not allow emojis, but it's also accessible through the emoji subdomain [] I hope that this is convenient for posting on social media or when instant messaging.


  • It's all self-funded right now, but I'll apply for grants soon
  • I'm hoping that we can use aggressive caching to keep server costs down
  • Maybe we can give sponsors a "supporter" badge in some form (maybe links that come with a ref=theirsite get some extra css styling applied with their brand colors)

The Future

The project has been released as an open source project. My dream is to have multiple contributors. I know that the code is a litte clumsy in parts, but a major benefit of the rules-based approach that we're taking is that we can swap out and improve each individual part easily.

My hope is that this structuring allows us to have multiple teams of developers working on different aspects at the same time.

In support of getting volunteers, I'm going to continue livestreaming the development on Starting Monday April 6th, we'll have a morning show where we go through what I (and hopefully the community) has been working on and then we have an hour of livecoding. The idea is that streaming is an opportunity to onboard new developers to the project.

Coming Soon

  • [ ] A new datasource
  • [ ] Charts from oz (I only just found oz writing this post, and I'm going to replace our fun but axis-less FF-Chartwell (pdf) based graphs with it)
  • [ ] statly Stately
  • [ ] Navigation with links generated through the rules engine
  • [ ] An expanded source-box with more information about each datasource
  • [ ] Some educational content (maybe contributed?) on how to read the graphs
    (we can probably generate custom text that references the data on the page so that each chart can have an "explain" link that just shows things like "A growth rate is.... the one on the chart you're looking at is X on March 28th and Y on April the 2nd")
  • [ ] The layout needs some work, but I think I have a good approach based on the excellent

How can you get involved?

Built With

Share this project: