How the “My Guinea Pigs” app started — Part 2

Naguib (Nick) ihab
Upilio
Published in
13 min readOct 13, 2019

It’s August 2019, exactly a year since I started fiddling with an idea for an application for guinea pig owners, something that I’ve been wanting to do for a while but did not seem like a smart investment at the time. After all, at the time I had no idea if this was going to work, but spending $400 bucks just to put my mind at ease and answer the question “Does anyone even want this?” seemed like a good idea.

12 months later, we now have over 14,000 registered users, 5000+ monthly active users, and are making a decent sum every month.

Here’s how we got from this:

to this:

My Guinea Pigs App Screenshots & Reports

and the lessons we learned along the way.

TL;DR Here’s what this article will cover:

  • In my last article, I mentioned that we had a few 1-star ratings that complaining about our in-app payments and how we made microtransactions in the app. In this article, I’ll talk about how we changed our business model and what effect this had on us
  • How we planned our roadmap and had a long timeline that told us what to expect in 6 months and when there will be gaps in the business
  • How we implemented a grunt fund an employee equity model rather than getting an investor
  • The “paper” work and third parties that you need to be aware of and keep an eye on

Lesson #1: The market is a brutal beast

In January 2019 we launched our second major update which introduced a different payment model: Freemium which is offering a free version of the app with an option to pay and upgrade to a premium version. It wasn’t an easy decision to choose the freemium model for one main reason: It’s not scalable, once the user makes a purchase then they have converted to a premium user and is no longer contributing to the ongoing costs of maintaining a server or developing the app. Simply put, cloud-based software does not survive on one-off payments.

Yet when we asked people what they didn’t like about the app (and with the 1-star reviews we got from the previous versions) it was mainly the in-app purchases that annoyed people the most so we at this point we had two options: either we offer a subscription-based model or we offer a one-off fee, which, based on surveys, was more appealing to our users as it’s similar to what other pet apps do and other apps, in general, that doesn’t offer ongoing content (think of Netflix, youtube red..etc) but is more of a tool instead.

So going against my better judgement we went with the freemium model; but rather than putting whole functionality behind the premium version we made the whole app free but certain features are locked:

however, knowing that we can’t survive on this pricing model for very long so we started looking into a plan B, finding different ways of generating more recurring revenue.

Our ratings changed when we LISTENED to the market
The market is a brutal beast, in our beta version the app contained the food guinea pigs can eat and a small collection of articles, we had good reviews and our users were happy; Once we introduced other features and locked them behind a pay per use plan our ratings went down. In a way not offering these features at all was better than asking for people to pay for them, however, the market is also a fair teacher, if you listen to her, she will guide you to the product that you want people to want. At first, I was using the allegedly famous saying by Henry Ford “If I had asked people what they wanted, they would have said faster horses” as a guide, and while this is true in mainly the very early stage of the app it doesn’t work nine times out of ten afterwards. And what did I learn? Instead of telling the market what it wants, listen to what it’s asking for.

Lesson #2: Roadmaps & OKRs

This might seem obvious but what’s more important than ratings, good metrics, and a solid business plan is being self-sufficient. Having that sense of security allows for mistakes, and with some tolerance to mistakes in your startup you’re able to take more risks, try things that may succeed well, or completely fail, you can’t do the same if you have a limited juice in the bank.

When we started making regular revenue (almost the same number every month) we started budgeting our tasks and spreading them out so that we’d be able to cover our expenses with the money coming in, so we had to get wizardy with our planning.

Firstly we made a list of the short term targets we want to achieve:

  • We want to build a social platform for pet owners to interact and communicate
  • We want our users to buy safe trusted vet-approved products for their guinea pigs
  • We want to expand into other markets i.e. Rabbits, Ferrets and Hamsters
  • As a side effect of achieving these goals, we should be able to sustain our company financially

Secondly, we asked ourselves what do we need to build to achieve these targets, I am not going to get into the details of what we’re building because you probably are not interested in that but you’re interested in how we’re doing it, so let’s just say that we had this list:

  1. To build a social media feature we need to build out: 1A and 1B in the app
  2. To have vet-approved products in the app we need to: do 2A and build 2B
  3. To expand into other markets we need to do: 3A and 3B

At that point, it seemed enough for us to know what needs to be done so we created this rough roadmap that indicates what is happening now, what will happen later and so on. We divided our timeline into now; things we’re currently working on, soon; things we’re going to work on this or in the next quarter

But the problem with that was it wasn’t very detailed, yes it did give us a clear destination of where we want to go but it didn’t really tell us how we’d get there and when, so we had to go deeper.

Thirdly we broke down each of those (1A — 3B) into small tasks, each with an assignee and a dependency (i.e. in order to do 2B we had to have 2A in place first) and we estimated how long each task would take to do and we ended up with a nice looking google sheet of all the tasks we needed to do

And finally we created a roadmap out of that google sheet and ordered the tasks in a way so that we’d have no gaps in our work week, i.e., person, X is not waiting on person Y to finish 2A to be able to do 2B instead while 2A is being done person X is working on 3A. Eventually, we ended up with an even nicer looking roadmap

Finally, with this plan in mind, and with some money in the reserve in case we ran into any unexpected bills, we set our speed according to our budget and kicked off.

Lesson #3 The best endorsement you can get is from your own employees

At some point in the last year I’ve hit a roadblock, I have just spent way too much money on this “idea”, either I’d call it quits and let the application generate enough passive income to develop another block of features or I’d start looking for investors, as I was seeking the latter option and preparing a financial roadmap, business plan, all the works to start presenting to investors in 2019 one of my team mates told me that she’d be interested in investing her time in exchange for equity, I remembered a book I read a few years back when I was in another venture about a fair way to split equity between founders and how the author talked about having this dynamic equity equation that allows equity to keep changing and forming and he called it “Slicing Pie” where each individual is contributing to the pie adding “ingredients” (aka time & money) and based on how much their market value is whatever contributions they provided gets compared against the contributions that are provided by the other “chefs” and bob’s your uncle you have a fair equity split that is based on what you have provided. I’d recommend reading that book by Mike Moyer even if you’re not in an active partnership.

Back to the team member who offered to invest her time, I gave myself a few weeks to think about it and finally decided to go for it rather than seeking funding, my reasons were twofold:

1. I have never worked with investors before, I never sought investment for a company before, and I don’t like using someone else’s money but I have worked with developers before, I have built projects using overseas teams and I know what interests them and what doesn’t, I know that a developer would rather work on a small project they’re given total freedom in and figure out the solutions themselves than a large project where they’re being told what to do. I know how a developer’s mind works but I don’t know how an investor’s mind does.

2. The second and more important is that this team, including the team member I have mentioned, have been with me from the start if there’s anyone I’d like to share this with it’d be the working hands that helped me build this. I know firsthand what’s it like to be working on something that’s yours, something that you sacrifice for because you believe in. Call me cheesy but I’d rather have employees that believe and own the business over employees who at the end of the day are doing this to make a buck, it’s that passion that an average working person would be willing to give up their valuable time for that would outweigh the investor’s money

The point I want to make is that if the people who are working on your product first hand believe in it enough to be willing to invest in it then you’re on the right track and you’re letting the work do the talking, I didn’t do a single pitch to any of my team members because they didn’t need convincing.

If I made it sound all fun and games it isn’t, we have contracts in place, a roadmap of where we want to be and how to get there, a realistic financial plan and an exit point where we’d stop investing our time for equity and start harvesting the rewards.

Lesson #4 “Paper” work

Now I’ll admit, that I have a pretty bad eye for noticing small details. When we started the app idea I didn’t have the domain upilio.io, so I just hosted the API and website on whatever domain I had at the time and didn’t think much of it, when I registered upilio.io a few months later I stopped using that other domain and even disabled the Gsuite associated with that domain which meant my website & email would go down but the domain itself is still up because the API is hosted on it and that’s all that mattered, all the accounts associated with my old email, left it online for about a month to make sure that I didn’t miss any important notifications, then when it finally stopped receiving emails that I cared about i turned it off and switched to the new domain, goodbye spam!

Two consequences happened because I didn’t pay attention to everything the app dependent on to run. To those of you who are DevOps.. please don’t judge me.

The first incident

I was using the app at night, trying to add in weight log for one of my guinea pigs who had been recovering from a breathing problem when I got an error using the app, I jotted it down on slack and didn’t think much of it, I had spent the last couple of weeks playing with my account on the backend and testing things so it must be just a missing id somewhere in the system that I can look at tomorrow. That was a mistake. I woke up the next morning to messages on our facebook page, emails, 1-star reviews and posts on different guinea pig groups about people asking us why is the app not working 😱

I got up at 6 am, my team’s timezones being behind me it was still midnight for most of them, I started testing the app from my wife’s phone and lo and behold the app is giving me an error when I sign in. I replied to all the messages, went on amazon and got their support on the line, kept testing different scenarios to figure out what was going on and eventually we found it… our SSL certificate for the old domain had expired

Of course I would have received those emails warning me that the SSL certificate was about to expire had I actually kept my old email address running, by the time I found out it was too late, I had to reapply for a new certificate, reactivate my old email and wait a few hours for the effect to take place. It was a nightmare.

We kept monitoring the app for the next two days to make sure that the domain has its new SSL in different parts of the world (AWS distributes the domain and SSL on edge locations so each region gets its update at a different timeframe) and replied to all of our users that the fix is on the way.

On the other hand I was kind of glad to see that immediately people started noticing and complaining, that does tell us a bit about how many users would be annoyed if the app completely stopped working, which the book “The lean startup” suggests is an accurate way to measure how much users actually want what you’re doing, of course the book is only talking about a feature in the app but I like taking things to the next level.

The second incident

Before we had the Upilio domain I registered the app and any and all legal documents (I.e. privacy policy) under the domain I had available at the time. Any third party application needed to have a link to these documents to present them to their clients to understand how we use their data and yada yada. I set them up once and forgot about them.

When I started moving domains around, I moved the website from the old domain to the new one and didn’t think much of it, after all we don’t even use that website and no one visits it, the app is what’s important everything else comes in second but what I DID NOT DO was update the links to our privacy policy hosted on the new domain.

Facebook the ferocious did not give us any notice before shutting down the app.

Another eventful morning I woke up to a bunch of emails and Facebook messages from users who can’t log in to the app using their Facebook account, Facebook has shut down our integration app. I spent an hour this morning running around different options and eventually I brought the old domain back up along with the privacy policy in it, and eventually, we updated the link on facebook to point to our new domain instead.

The main takeaway from these is for those of us who are used to things just working to be alert, write everything you’re using in your business down, ask your developers to write all the libraries they are dependant on in a readme file in the code, make sure to check on everything often and do not make the move from one domain to another lightly.

These are the lessons I have learned running this business so far, we still have a lot ahead of us and the biggest challenge right now is moving towards a recurring income model that can scale and having the patience to see it through.

--

--

Naguib (Nick) ihab
Upilio
Editor for

Just another coder with some free time and a coffee on a train 🚈 ☕️ 👨‍💻