The COVID Tracking Project was propelled very quickly from a small group of individuals working on a Google sheet to a critical piece of infrastructure for the nation on the COVID crisis. This meant our website had to rapidly adapt to the needs of users. This is a history of the major changes to the website and our API service over the lifetime of the project. Links to specific Pull Requests or Commits are included to help put these big changes into context.
So many people worked on these major changes, and even more whiddled away at tweaks and bug fixes. Many were not direct code contributors, but worked tirelessly on UX, data integrity, and design. We thank every one of you for making the best site we could possibly build and for supporting each other during a difficult time.
The first version of the site was a few static pages built in Eleventy, a simple static site generator. A version of Netlify CMS was setup to edit some page content using markdown.
The API was hosted on a CloudFlare function server.
Netlify graciously donated a very large plan to our project, which is where all our hosting and site building was done. Netlify was critical our our infrastructure from day one.
Individual states were assigned URLs after the main data page got too large.
Version 2 of the site was launched. This changed the site to:
- Use Contentful as a content management system
- A blog section
- New visual design
- New logo and brand guide
- A style guide
- Moved to GatsbyJs as the site build tool
- Made the API a static site built along with the website
Added outcome data, including hospitalization.
Moved the core API service from the Cloudflare worker to being built on Netlify and hosted as static files. The API builder used Google Sheets API to pull data from our data entry sheets and built a lot of CSV and JSON files. We did this because the Cloudflare worker was overwhelmed with requests, and it simplified our build pipelines for the API. It also meant that changes to the website and API could be staged and deployed at the same time.
Launched the Covid Racial Data Tracker.
Posted our first blog post, about the CRDT project.
Started creating contact forms for people to get in touch without needing email. These were
Allowed volunteers to be added automatically to our /about
page by filling out a few custom profile fields in Slack.
Launched a huge visualization guide put together by the visualization team.
Added search using a plan donated by Algolia.
Created a sandbox for our API..
Launched a homepage redesign that added a better blog listing, a large call-to-action for the CRDT project, and better illustrations of where our data comes from.
Changed the website to source data from a repo of API data files built externally, instead of the website build also building API files. Both the website build and the API build were taking too much time, and the number of builds was increasingly divergent for both projects.
Launched a redesigned homepage for the CRDT project.
Added document repositories so publications like PDFs could be managed within Contentful.
Created standardized privacy, accessibility, and terms and conditions language.
Created a separate preview environment so editors could stage and preview changes in Contentful.
Introduced a Grid system, refactored all our Sass files to be in clear modules, and added a Danger.js file that enforced consistent use of common units for things like padding, margin, etc.
Added support for RSS.
Redesign our blog pages, and moved to Contentful Rich Text instead of simple markdown so we can add custom blocks for things like tables.
Built in chart annotations that let us flag important dates in our state and US charts. These were managed in Contentful.
Launched a chart gallery, managed in Contentful. This was a selection of charts in Tableau just presented in a nicer format.
Created a way for users to ask for better racial data from their representatives using a Netlify form.
Moved our API to api.covidtracking.com
instead of covidtracking.com/api
Redesigned main data page and state data pages to use cards instead of table-based layouts for data. More information about this change
Switched which field to use when displaying the total test results to depend on the API field totalTestResultsField
Created an automatically-generated social card for every state in the CRDT project. This worked by using Puppetteer to take screentshots of React components on every build.
Embedded tweets by COVID19tracking on the website, including the latest pinned one on the main /data
page, and any tweets about a specific state on it's individual state page.
Added individual long-term care pages for every state.
Created our first holiday warning about Thanksgiving. Since some states lagged on reporting on major holidays, we wanted it to be very clear that the numbers around Thanksgiving could be wrong.
Redesigned our main charts gallery to add trendlines and a cube map of the US.
Added a card of HHS hospitalization data to every state.
Since our screenshot list had gotten so big, the website stopped building completely on Netlify (timed out over 30 minutes). We quickly spun up a separate Gatsby site called screenshots.covidtracking.com
and hosted it on Github Pages, build by Github Actions.
Launched a new homepage design that included hexmaps, a chart carousel, better blog listings.
We renamed the blog to "Analysis & updates"
Launched a large map of individual HHS facilities using MapBox.
De-emphasized grades in preparation for a new assessment process.
Added antigen testing data as a card to each state.
Since the state notes were getting terribly long, we moved them to their own page, and linked off to them from the state landing page.
Added federal LTC vaccination data as a card to the states.
A popular website, https://rt.live, which tracked Rt numbers using our data, went offline. It pointed people to our website without context, and as a result many poeple thought we were responsible for the site going offline, or upset that we did not provide Rt numbers. We had to add a warning to users from the site that we had nothing to do with this, and where to get resources. The owners of rt.live quickly changed the wording on the site, which eventually improved things.
Created a separate landing page with information on individual state assessments, which replaced letter grades.
Launched a very large MapBox map of individual long-term care facilities.
Added a static warning to every page about the data collection efforts ending.
Launched a new homepage with images of our volunteers, a thank-you message, and links to some of our impact.
Created a single landing page for CRDT per state.
Relaunched the Long-term care section to have its own navigation and sub-pages.