Interested in learning more?
Send us a message 👋
About FIND MY VACCINE
At the beginning of the COVID-19 pandemic, it was extremely difficult to find and receive COVID-19 vaccines in Canada. Hospital and pharmacy waitlist times were packed and Canadians had no visibility into which clinics offered vaccines and how long it would actually take for them to receive a vaccine, as supply was extremely constrained.
To solve this, we decided to create a phone number (1-833-356-1683) that Canadians could text their postal code to and receive an immediate text message back of the closest vaccination sites near them that had supply. Within 3 days, we helped over 250,000+ Canadians find vaccines near them.
After seeing a Tweet on Twitter of The White House creating a text messaging tool to help Americans find vaccine locations near them, we asked ourselves why a tool like this wasn’t available in Canada. So we looked into the tool and what it would take to build it, and we realized we could build it within 2-4 hours. After that, we were off to the races.
Setting up a programmatic toll-free number with Twilio
Since we were already experienced with Twilio, we chose to use Twilio as our platform for setting up a programmatic phone number that we can integrate our app with to send/receive text messages. With this phone number we could configure webhooks to be fired whenever the phone number would receive an incoming text message and handle requests from our app whenever we wanted to send a text message to a user.
Gathering vaccine location data and mapping it to postal codes
Once our phone number was configured with Twilio, we needed a way to source the clinics across the country that were offering vaccines and had supply. To find this, we scraped the provincial governments datasets, cleaned the data into a structured format, and mapped it to all postal codes across the country.
Creating the backend infrastructure to parse incoming texts and send answers back
To listen to incoming text messages from users and to send text messages back to users, we needed a backend that simply exposed a few API endpoints. In addition, we needed to create custom logic to parse and clean incoming data into more structured formats. To do this, we used Node.js and deployed our backend on Heroku. This completed the final piece of the application.
Creating a simple, pretty web landing page for users to interact with
For those that didn’t want to text our phone number, we built a frontend with React and Tailwind that would allow anyone to visit the website, enter their postal code, and receive the closest vaccine locations near them.
Quickly scaling to 250,000+ users and solving scaling issues
As soon as we launched the phone number to the public, we immediately began receiving thousands of text messages. Very soon, our phone number got flagged and blocked by Twilio as potential spam, upon which we worked very closely with Twilio execs to solve this and get approval by respective telecoms. Once this was solved, we began receiving tens of thousands of requests every few mins and quickly realized our phone number’s throughput wasn’t large enough. As a result, we had to get approval for specialized throughput by Twilio and scaling our Heroku instances appropriately. Over 3 days, we handled 250,000+ users smoothly.
Our goal of helping Canadians find vaccine locations near them was a huge success. At the end, we helped 250,000+ Canadians through this tool and received numerous heartfelt messages from them about how the tool helped them. What started off as a fun project on a Friday night turned into something we can always look back at with happiness.