This is my submission for the Twilio Hackathon.
I built a tool that helps fact check claims on messaging platforms. We've all seen these messages of questionable origin before forwarded from others. They are a highly effective way of sharing fake news, a problem that has only gotten worse amid the current pandemic. Experts are calling this an infodemic. WhatsApp has even gone so far as to limit the forwarding of messages to stem this issue. There, however, does not seem to be a simple solution for fact-checking these messages as you might see on Facebook or Twitter which is where my tool comes in.
To use it, users simply send a message to a number with the claim they would like to fact-check prepended with "/". They will then receive a message with information on the claim they sent in.
If the claim is new, it will be logged to be fact-checked in the dashboard at a later time.
Every time a claim is sent in, non-personally identifiable analytics is collected to track the spread of these messages through time and around the world which can hopefully help journalists g and interested parties identify trends in the data.
I built the SMS responder using Twilio's Programmable SMS product with a webhook to a Firebase Function. Using Twilio made accepting and replying to messages very easy, coupled with Firebase's serverless nature, I was able to get a minimal prototype of the responder in just about an hour.
The responder saves claims it receives into Firestore for fact-checking and publishes a PubSub message to trigger another cloud function to aggregate analytics off the hot path and be read by the dashboard later.
The dashboard was built using Angular since it was what I was most familiar with. This was my first project using Angular 9 with all its Ivy related improvements such as faster compilation and improved developer experience and it was truly a joy to work with. Fast hot reload and type-checked templates made iterating fast. The dashboard reads and writes data directly from Firestore and does passwordless sign in for fact-checkers using Firebase Authentication.
The diagram says Cloud Datastore because I couldn't find a Firestore icon 😢.
This tool is merely a proof of concept of what can be done to stem the spread of fake news on messaging platforms. Obviously, running a fact-checking system is a lot more complicated than what can be done by a single person, involving other professionals etc. But I hope someone is inspired by what I built here to actually deploy something similar in production.
On the software side, there are a lot more possible improvements. Taking advantage of Twilio, the SMS responder can be extended to work beyond SMS to work on WhatsApp, Line, Messenger, Telegram etc. Channel analytics can be collected to track the spread of claims across messaging platforms. An audit trail system can be implemented in the dashboard to track changes to fact check status. Fact checker links can be collected automatically by integrating with existing APIs and much more.
Being a part of this hackathon was a lot of fun and I am definitely going to join more of these in the future. I hope you like what I built here, thanks for reading!
The Poynter Institute’s International Fact-Checking Network has launched a chatbot on Whatsapp doing something similar.
- Be Wary of Those Texts From a Friend of a Friend’s Aunt - NYT on COVID-19
- UN tackles ‘infodemic’ of misinformation and cybercrime in COVID-19 crisis - The United Nations
- WhatsApp limits message forwarding to slow spread of coronavirus misinformation - Reuters
- Poynter Institute’s International Fact-Checking Network launches chatbot on WhatsApp to debunk thousands of coronavirus-related hoaxes - TechCrunch (May 4, 2020)