After integrating with Auth0 I've found that it was too complicated to work with - it has too many features that I don't need.
I decided to replace it with Google Firebase Authentication which I found to be very easy to work with, and for me it has the benefit of a vendor I'm already working with (I'm using Serverless Functions for Chart generation)
Integrating with Paddle (for payments / subscription management) was literally 15 minutes work. You create the plans that you want on their webapp, and call one js function. You then get a webhook after the user pays.
I had to play with the UX of signup flows though. I was pondering between 2 options:
I ended up with the second option because:
I also had many thoughts what should be the payment model during Beta. I ended up with a suggestion that came up here in IH (sorry, I don't remember by whom). I charge $1/month during beta and then you get 70% off for lifetime afterwards. The reason is that I want to validate that people are willing to pay for the product, and also I believe that feedback from paying customers is different from feedback from free customers.
Free tier is available without registration.
Few more things I did during that time:
The goal for this week is to release all of that. I didn't do it till now because the user flows go through the charts editor and the site. I can't release it before all the flows are complete.