Skip to content
This repository has been archived by the owner on Dec 7, 2022. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

COVID-19 Vaccine Spotter

SHUTDOWN PLANNED: will wind down operations on September 23, 2021. See the shutdown notice for more details. This code will remain available if it's of interest, but I haven't been actively working on things in a few months now, so I think it's time to consider this chapter closed.

A tool to help you track down COVID-19 vaccine appointment openings at your state's pharmacies. The code behind

UI Development Setup


  • Node.js 14+
  • Yarn

This process is clunky right now, so my apologies.

  1. Clone the repo: git clone
  2. Install dependencies (inside the repo): yarn install
  3. Fetch data from the API for the website to run: yarn setup
  4. To run the development server for the website: yarn dev. The development site should then be available at http://localhost:3000/.

DB and Backend Development Setup

docker-compose is used to bring up a local postgres DB. Then an image runs to bootstrap the database with states and postal codes. Finally, as an example of a backend task running, a container runs the refresh-website task.

docker-compose build
docker-compose up

To run additional tasks, you can use docker-compose run:

docker-compose run --rm --no-deps task_runner bin/refresh-cvs

Very Beta API

All of the data being collected is published as JSON files here:

Subscribe to this discussion for any announcement of API changes: #27

Website Language Translations

Contributing Translations

If you would like to help translate the website content into other languages, thank you! You can perform translations and add additional languages at Localazy.

Developer Translation Workflow

  1. If you're adding new text to the website, just wrap the English text with the $t helper, like $t('my text here...').
  2. In order to translate these strings into other languages, and you have permissions to Localazy, then the steps are:
    1. Run ./bin/run locale:extract to extract any new strings into the website/lang/messages.pot file.
    2. Run ./bin/run locale:upload to upload the updated website/lang/messages.pot file to Localazy.
    3. After translations are performed, run ./bin/run locale:download to download the resulting language files.


This project is licensed under the terms of the MIT license.