WhatsApp Task Assistant
I’ve hopped between many task management apps, yet always found myself longing for something that could seamlessly integrate into my daily routine—a tool that wouldn’t feel like just another app. Given how much of my day is spent on WhatsApp, the thought of merging task management into this platform was a no-brainer.
Working on this project was my form of creative escape — Paul Graham once called it “Good procrastination”1. Here’s a peek into crafting the app, blending task management with the convenience of WhatsApp.
i. The Foundation
The app is powered by Node.js with Express for simplicity. MongoDB was an easy pick for the database — its flexibility and scalability were pretty effective in my other projects.
- Twilio WhatsApp API
I use Twilio to access WhatsApp API via its sandbox environment. This integration helps integrate the app into my daily messaging flow. There’s a catch, though; due to the sandbox environment rules, you may need to renew access every 72 hours. It’s for this absurd reason that I’ll likely switch over to Telegram. Edit: I moved from a sandbox to a prod environment and chose to stick with WhatsApp (significantly less restrictions) but will give Telegram a chance for my next project.
- Fuzzy String Matching
Fuzzy string matching is perhaps my favorite feature here. It’s okay to mistype a task or shorthand a command — the app gets what you mean, at least if you’re well over the 60% match threshold. This was key to making task management feel less like a chore and more like a conversation.
ii. Key Features
The app shines with functionalities that cater to the essentials of task management:
- Adding Tasks: Jot down tasks directly into WhatsApp, and the app sorts them out with all the necessary details.
- Task Completion: Mark off completed tasks with ease, keeping your to-do list fresh and up-to-date.
- Viewing Tasks: Get a snapshot of outstanding tasks to keep track of what’s next.
- Task History: Get a 30-day log of tasks to gauge your productivity trends.
- Removing Tasks: Clear out tasks that are no longer relevant.
- Run Analytics: Since the collects data, you can run a weekly report for yourself, highlighting tasks that have dragged, days you completed the tasks etc
- Regular Reminders
I use node-cron to send out reminders of the day’s tasks. I currently have it as twice a day, but you can have it as often and whatever time you want.
Building this app was as much about solving my own task management dilemmas as it was about the thrill of creation. It’s turned into a fun tool for keeping track of my daily tasks. I can possibly run some analytics experiments on my habits.
I don’t intend to scale this; it was more of a weekend project that helped me understand sth else I was working on.
Here’s the link to the repo, in case you want to spin it up on your own :)
get notified when i post:
tags: projects