2 weeks ago I said that I’d build a SaaS app in C++ in 2 weeks. It’s an app for quickly recording sales made in person, and via WhatsApp. It’s something my wife would actually use at a market event that we had coming up.
At the time I had no idea if I’d get it up and running in time.
Well, I did. Only just. In fact, I only got it working less than an hour before we had to leave for the market.
And when I say “working”… it had some serious rough edges. The last 48 hours was basically a nightmare gauntlet of one technical issue after another. It was stressful, chaotic, and honestly pretty exhausting.
Anyway, let’s go through how I got it over the line, what went wrong, and what I’d do differently next time.
Extreme Minimum Viable Product (MVP)
To get it done I had to take Minimum Viable Product (MVP) to the extreme. The word product is self-explanatory, so let’s focus on the other two.
First: Minimum. This .means cutting out everything that’s not needed.
- So, no logo
- No glossy pixel perfect design
- No image uploading, sales analytics, or even a landing page with a waitlist sign-up
I really wanted to do that waitlist. But it’s not necessary for my wife to use it, and I would have missed the deadline if I had tried.
The word “viable” is where quite a few entrepreneurs go wrong. The app still needs to work, and deliver value. It needs to solve some core problem.
For Order Hand, it had to enable users to:
- Create products and bundles
- Add customer details
- Record orders
That’s it. And that’s all it could do last weekend. Everything else was dropped, including being able to edit customer and product details. A full MVP would need those capabilities, but this MVP was only for my wife, so I could get away with it.
Rough Edges Everywhere
When I said it had rough edges, that was an understatement. Last minute I had to disable Litestream, because some database transactions were failing with it enabled. I had a choice: give up on live database backups, or no working app.
Also, while the app looks just fine on my laptop, it’s unreadably small on a mobile device. Really bad considering that it’s designed for WhatsApp sellers, and WhatsApp is mobile first.
My mistake was not testing on an actual mobile device during development. I thought that I could check the mobile look simply by squishing the window. Works great on my laptop. But a real mobile browser doesn’t behave the same way.
Thankfully, the app was still usable.
Sigh. Lots of unnecessary stress and anxiety. Unnecessary, because what’s the worst that could happen if I had failed? My wife would have recorded sales manually like a champ. My ego would be a bit dented, I’d feel a bit sad. And then life would go on…
What’s Next
Life is indeed going on, as-is development of Order Hand.
First, I need to solve the database transaction failure issue, and get the app looking correct on mobile.
After that, I’ll add a WhatsApp based waitlist signup to the home page, and start the marketing engine. The engineer in me wants to work on adding features, but the entrepreneur says that I need start marketing now, or I might end up building something that almost nobody wants. Again…
Once those are done, then I can start adding more features. I’ve already got some feedback from my wife.
I’ll keep you posted on progress.