I had a basic functioning version of my product working and even a small (<10) group of alpha users. But then the developer in me was annoyed at some of the choices I made in haste and spent the past 2 weeks refactoring. How have some of you avoided going down the optimization rabbit hole?
I try to spend about 20% of my coding time refactoring. That both forces me to be judicious about optimizations and prevents the code base from becoming hard to work with.
It may sound harsh, but probably you have too much free time :)
Set HARD deadlines on yourself for the goals you want to achieve, like a metric to have 10 ACTIVE users by the next month. Or earn $1,000 by the end of 2019. Let that guide your decision, not quality code. You will have time (and hopefully money!) to refactor and make the code pretty later. Until you have real customers - you're wasting time on refactoring.
Of course, unless your product bug risk is high, like in some sectors like medicine or finances or law.