Project !Addiction #2

Project !Addiction #2

This week I put the basis for the project. Was not sure if I should be adding a local DB and be done with it, however after careful consideration I decided that investing some time now into building a backend infrastructure will put me in a better position later on in case I need to scale.

For my backend infrastructure I opted for Firebase / Firestore and Isar. Isar DB will play a critical part in keeping track of abstinence time for addictions. Once I get closer to actually implement this module I will share a bit more about the technical details.

Since I am using Firebase, I also took the opportunity to setup Crashlytics ( gives me good visibility in the overall application health ) and Analytics ( this of course will allow me to understand user behavior and react quicker ).

Don't think I really put it out there till now but for this project I will be using Flutter Framework so this gives me the option of targeting multiple platforms from the same codebase. I don't personally own a Mac hence an IOS is pretty much out of the question in the early stages but I do keep a PWA in sync with my Android version.

Since it will be an MVP to test the waters I am looking to keep the costs to a minimum.

On top of the infrastructure being done I have also managed to get the Login, Registration and Email Confirmation screen up

A bit later down the line I will be adding Anonymous Login to decrease the barrier for users to access the application. This was a though choice, especially that my aim is to gather as much feedback as possible about the potential of the project and using a local DB removes the complexity of developing / managing complex systems like Authentication and Authorization and many others that come with it. On top of that the UX is better, opening the application and have it been ready to go is just bliss.

But as with everything the drawbacks for such decisions are real:

  • application is stuck on that device and if the user changes the device you will need to look at migrations.

  • not having a direct link to the user will harm the upcoming features you will release

  • overall not a scalable product