To help me achieve my goals for 2023, I want to build a habit tracker app that I can use with my friends to keep each other motivated. A lot of the apps I have found charge ridiculous monthly fees for basic features that don’t require a monthly charge. This would be my first time creating a mobile app (that isn’t just a mobile-friendly website).
For the tech stack I was thinking of using the following:
- React Native (and possibly Expo) — My background in frontend is with React, so this should make it easier for me
- Firebase — this is a platform I haven’t used so far, but seems appropriate for the complexity of the app I have in mind. If the costs get too high, I can always migrate to Supabase or something custom
As for the features I want available:
- The habits should come in two flavours: binary and scaled. For each habit that you add, you should also specify a repeat goal (e.g. once a day, once a week, 20 times a month)
- Binary habits are those that are either done or not (e.g. wash the laundry)
- Scaled habits are those that can have different levels of done (e.g. run 1km: Someone can run more than 1km or less than 1km but still want to track it)
- You should be able to “overdo” a habit. For binary habits this means that you can check them multiple times in a day, for scaled habits it just means that you should be able to input more than your goal
- You should be able to have “negative” habits. Those habits are considered “successful” if you don’t do them or you do less than the threshold (e.g. Smoke less than 5 cigarettes in a week)
- You should get badges for completing a streak of habits or a habit a certain number of times and your friends should be able to see these badges
- You should get notification reminders for your habits and should be able to send nudges to your friends to remember them to complete their habits
- You should get charts for each habit showing you your progress in time. For scaled habits you should be able to change your target and the past data shouldn’t become “invalid”
- You should be able to sync the data in your cloud of choice (Google Drive for Android, iCloud for iPhone) and easily restore
- You shouldn’t need to create an account if you don’t plan on using the social features
I want to use this project as an opportunity to dive into both React native, as well as Firebase. By the end I want to have an app that I use on a daily basis, that my friends find useful and that (maybe) others do as well.