After the launch we were struggling with getting our first subscribing users, we tried to push our marketing investment, and we tried to close lifetime deals as part of the launch campaign no matter how far and hard we tried, we could say that we had successfully failed our initial launch and plans so we went down the hard road and terminate our services after the first year. Let me say that it was so depressing and painful to see all that time and effort go away with just a few clicks, it was heartbreaking and I was about even to quit programming and move into a completely different area and become a Spanish philologist; something hit me hard inside and I didn't feel like I wanted to do this anymore.
But I accepted a new job opportunity in one of the biggest companies that you could possibly work at and I felt back the joy of programming. And after half a year of not thinking about OTPfy, I started thinking about it a lot, and I thought about everything that went wrong in the first place. And the first thing that came to my mind was the monetization and pricing, we did a very bad job in that specific area. Lately, I come to think about it and nobody would ever have paid a flat fee license type of subscription with a monthly commitment if you don't even know if it's going to work for them. We have to think about it more carefully and we came to a conclusion, it's a more friendly approach not having to make our users commit to a subscription, a flat fee, or a monthly commitment; that's when we thought about "pay as you go" with a development environment that's free for you to try and test before switching production.
We invested some time conducting market research about pricing and "pay as you go" sounded like the better approach that we could take for the company, especially if you allow your clients to try it for free in a development environment without any costs.
We also had to reconsider our previous infrastructure, it was too complex for something that should have been simple and straightforward, we wanted to offer One Time Passwords and Two Step Verifications, and that's what we should have offered, but we offered way more than that and allowing users set a huge amount of settings, adjustments and that was way out of scope.
We wanted to keep things simple and straightforward, so we have developed a mobile app for iOS and Android that will allow our clients' end users to scan a QR and then generate One Time Passwords on the fly that later on, our clients could use a simple call to our REST endpoint with their secret token and verify if it's a valid one or not. Everything is encrypted and secured, of course.
As we have stated before, we have created a development environment for our clients so they can test everything before moving to production, and the best part is that everything that you do in this environment is completely free and it works exactly the same as in the production environment, the only difference is the secret token that you will use to generate and verify One Time Passwords. Prior to this we used email to send the One Time Passwords to our clients' end users and this was ok but not that secure as generating them encrypted on our clients' end users devices, plus we didn't have a development environment for testing for free.
We also simplified the accounts system, previously, you'd need to create an account and then you'd be able to add team members that would be able to join and also manage settings. This flow was complex, and we ended up simplifying it to the maximum, right now, there's only one account for everything, this is something that we've seen that is a common thing in many different companies and applications.
Going back to our main pain point of the failure, pricing. We have revamped the pricing model to "pay as you go", and have thought about rewarding commitment so we tiered usage and give a generous discount if our clients reach certain thresholds. Prior to this, we had 3 different licenses that offered different usage limits and prices, but this was not ideal, as we have stated before, nobody wants to commit to a flat fee and not maximizing the usage. Our new pricing starts from 0.08€ per verification, as we only bill verifications and not generations. Our commitment rewards will take down pricing to 0.06€, 0.04€ and 0.02€ respectively per verification, and this sounds much more better and appealing for our clients to commit to a usage volume, or maybe not, you will just pay for what you actually consume, and we're proud of this pricing model that we have setup and we are sure that you'd find it very appealing.
Great read - the “too many features” problem is a real one
I think it’s one of the most common of problems we face daily. I think focusing on delivering core in the best shape possible it’s better than delivering many things not well developed