The perfect product myth

·

8 min read

The app I release will be perfect. Users will love using it. They will be surprised by how fast it is, given its complex functionality. I will surprise myself by writing the cleanest and most beautiful shiny sparkly code that will make my product scalable and make it easier to add features. Everything will be PERFECT. PERFECT. PERFECT!

These are the thoughts that have been running in my head since two months, October 6th till present.

Perfection

I'm talking about my side project that has quite literally been pushed to a side (almost) due to other urgent commitments (like exams). But I don't give up that easily. So I've been hustling with two things at once: I want the app to be PERFECT but I also want to develop it in the little time that I find these days.

Sounds like a huge problem.

I'll tell you more.

Aiming for the best UI, best UX, speed etc... is exciting but here are some side effects that have come along with them

1) I go crazy when I'm developing the app. Even for the smallest piece of functionality that I want to build, I think 5000 times(don't know why I came up with this number, but anyways read on) about the cost, the number of reads and writes to the database, the speed etc...

I know that's great but I feel too much time spent in it and less time spent coding and making mistakes and learning from them, pulls away the joy that programming and building things once brought me.

There was once a time in 2020,when I didn't think much about how scalable my app was, how the users would react to the UI (basically I just kept it simple), how much the database services would cost, how much the domain name would cost, how to decrease the number of reads to a database etc... I just built things for fun and out of a curiosity to learn and grow my knowledge.

I totally understand that the above things are very important, but the extent to which this over thinking has crippled me can't be explained in a few paragraphs that I write here. It has gone out of control to the point that it has taken away a lot of the motivation I had in the beginning and now, since I know I can't make the PERFECT app, I feel like why should I even make it in the first place.

2) This leads me to the next side effect of aiming TOOOO high. Procrastination. I shifted the release date 4-5 times already.

3) Because of my cost estimates, I tried to do some extremely crazy things with my code so that I can minimize the cost for using the database as much as possible. I think nobody has ever utilized React's Context API as much as I did to minimize the number of calls my app made to the database. But in the end, my plan didn't work out and I had to abandon it and all the time I spent thinking about this plan vanished into smoke.

Realization

When I write here, when I break down the problems that I'm facing, I most certainly end up with an answer. This time too, I have a small plan to get out of this.

OK. Let me start talking to myself now.

"Manu you know what? Don't make the app thinking a lot of people will use it, so if you don't get paid users, you will have to pay for the database services yourself. Don't care about the mistakes that can suddenly put you in a position where you'll have to pay a huge amount of money to keep the app alive. Mistakes are lessons in disguise. You know this right? What's the worst that can happen?

You wake up to an email saying there's a huge bill to pay, otherwise, the database service will be discontinued. Let's assume you don't have even a single paid user. You obviously cannot pay from your pocket. In such a situation, let it go. I know you worked hard day and night, over thought a lot, wrote many posts on Hashnode regarding this. But if it is not bound to be yours, also learn to let it go. You at least tried. You didn't give up midway right. That's a win in itself.

Coming to the main question. Will your app ever become so large that it breaks out of the database's free tier?

Most probably not. Yeah people like the idea and a few have been waiting to try it, but it is not that they will sit with your app and keep adding stuff to the database all throughout the entire day right? People are not so jobless that spending time with your app is the only work they do. Often times, we think a lot about what others think of us. But they are busy thinking about what we are thinking about them. So there's a huge chance that people will use your app maybe once or for a maximum of 10 times a day. That's it. It will take a huge amount of time before you break out of the free tier. So no worries for now. Just build it the way you envisioned it. Ship it. That's all that is in your hands. All the other things are just what ifs, assumptions and predictions. What happens in the future, will be taken care of later. You will think about it only when the time arrives. Not now. For now, just do what you want without thinking so freaking much about the cost. Please. Peace :)"