blog 1

From zero to a lifetstyle business. Celebrating my app's first anniversary.

February 7, 2019

productivity iosdev motivation learning hustle yttracker

Jan 7, 2018 - New year resolution

2018 was just getting started and like every year, I was listing what I wanted to achieve during this new year, my 2018 resolutions.

One of my goals for 2018 was to build my personal brand in the tech industry. Launching a YouTube channel was something I had thought about for a while but never really got into for various reasons: no time to shoot & edit videos, shyness, lack of confidence, not having the right gear etc.

All these were bad reasons and mostly excuses. All I really needed was a story to tell, a webcam & a mic.

No more excuses, I published a first video titled “Building iOS Apps - The journey of an Indie developer”.

News flash | Jan 16, 2018: things are about to go bad, real bad…

I remember waking up on that day and checking my emails. I ususally don’t pay too much attention to newsletters but somehow one email caught my attention.

YouTube was changing their monetization policy.

To earn money with YouTube videos up until that point, you only needed to gather a total of 10,000 views on your channel (no matter how big your audience or how many videos you had uploaded).

As a result, a bunch of crappy videos with click-bait titles or thumbnails would end up monetized and advertisers brands were associated with crappy content. Not good for YouTube, not good for advertisers…

So YouTube changed the rule and to monetize videos on YouTube, a channel would have to reach 1,000 subscribers and 4,000 hours of watch time over the last 12 months. And the channel would have to consistently stay above these thresholds to stay monetized.

A big blow for small YouTubers

Obvisouly the new thresholds were now much harder to achieve for small YouTubers and many channels which were once monetized, lost their monetization privileges. Bye bye YouTube dollars 😞.

Hugely demotivating for YouTubers who were serious about their channels (not posting crappy content) but were still too small to reach 1k subscribers and 4k watch hours.

What about me in all this?

My channel was just getting started. I thought reaching 10,000 views would be relatively easy but with this change, things would get trickier. I looked up YouTube Analytics to find out how I could track my progress towards these goals and to my surprise, YouTube’s engineers had done very little work to display relevant monetization data in their analytics.

The only real way to check were your channel stood was to log in to the Desktop Creator Studio, go under Advanced settings for your channel and select monetization. And from there you would see something like this.

YouTube Analytics Dashboard Monetization - YT Tracker

Not particularily user-friendly to check your progress regularly…

Jan 17, 2018 - That’s it, I’m doing it.

The next day, I thought I’d check if the YouTube API would provide the relevant data that would allow me to create a small tracker for myself to check my progress on my phone instead of looking up the desktop version of YouTube Analytics.

A few hours of research later, the micro concept was validated and I remember the feeling of excitement slowly growing in me.

I rushed to set up a Firebase Project, a new App ID on the Apple Developer platform, a new Xcode Project and all the boilerplate stuff needed to start building an app.

I picked a random name, without thinking about relevant keywords of course: YouTube Monetization Eligibility Tracker. I makes me laugh today… who in the world would search for this on the AppStore. But I was high on my new idea and nothing else really mattered.

YT Tracker - First Xcode file

Rushing the design

On the very same day I fired up Sketch and started designing screens… well one screen. The plan was to ship something as soon as possible to leverage the news effect and that would mean cutting down to the smallest possible MVP (Minimal Viable Product).

I wanted to build one screen with 2 progress bars (one for each objective) and one screen to let users know about me and give them the chance to send me some feedback so I can improve the app later.

YT Tracker - First design YT Tracker - First design in Sketch

Vertical progress, circular progress, full screen or card-based layouts… at first I really had no idea what I was doing. But that’s often the case when you start something new.

Obviously a lot has changed since these first screens but if you look closely you can probably recognizesome design patterns that are still in the app today.

Settling in on a simple User Interface (UI)

After a few iterations and a lot of feedback from my indie dev friends. I settled on a first version. I kept it simple and promised to not spend much time on animation.

YT Tracker - First

What went into the v0?

So with this design in mind, all I really needed to do was:

  1. Build a tutorial / log in screen which lets user connect with the YouTube Channel
  2. Build a tab controller with two tabs:

    • Tab 1: Monetization Tracker - which loads 2 data points from the YouTube API
    • Tab 2: About & Feedback - which tells users who I am and how they can contact me with bug reports, suggestions and feature requests.
  3. A menu to let people log out of one channel and log in with another one.

What were the main pain points while building this first version?

Core functionality:

I had never used Google Sign In which is the gate to access YouTube Channel and the Analytics scopes. Similarly, I had never worked with the YouTube API. I had to understand the concept of OAuth 2.0 and access tokens and learn when to use tokens or a simple API key to access different end-points of the API.

Reading the documentation helped to some extend but getting my hands dirty was really what got me through this phase.

Ad-hoc functionality

Since I decided to use Firebase as my back-end solution, I played around with Cloud Functions to receive emails whenever a user would send me a feedback via the app.

The Feedback message sent from the app is stored on the Firebase Real Time Database and then I have set a Firebase Cloud Functions to listen to that endpoint on my database and send me an email whenever a new child was added in the database.

Feb 7, 2018 - The launch.

YT Tracker v1.0 approved

No alpha, no beta, I just hit publish as soon as the app got approved by Apple. I had no launch plan ready, no marketing material, no landing page, nothing.

I knew all YouTubers were furious about the monetization policy changes and my go-to-market strategy was really to bring an app in the store as soon as possible and hope that the timing would play in my favor.

Let’s be honest, I had no strategy but I felt this app had a good potential and that it would at least solve my problem as a newbie YouTuber.

How did the app get initial traction?

I believe timing was ideal and it helped get the app out there in a great way. Everybody was talking about this monetization change news, people were blogging about it, youtube-ing about it, tweeting about it… it was everywhere.

The Analytics offered by YouTube was relatively behind to track these specific things and I brought a solution to a painful problem at the right moment. I think that was really the key.

Fueling organic growth

From the get go I saw a slow but steady organic growth. Word of mouth was definitly working and YouTubers were recommending most likely to their YouTuber friends to download the app. So to capitalize on this I offered them the ability to download and share content directly from the app. And this resulted in even more organic traffic to the app. If you don’t believe it, see by yourself what we find when googling “powered by YT Tracker” on Google Images.

Powered by YT Tracker

Post launch struggles


Monetization wasn’t the initial focus since I was initial just building this tool for myself. The first version didn’t even have ads I believe. I remember putting ads in the design but ending up not implementing them to ship the v1.0 faster.

Monetization has been quite tricky for the first few months. I was discovering StoreKit (the in-app purchase that comes built-in with iOS) for the first time and I was learning with my app sitting in production with more an more users. This is far from ideal but I didn’t care much at first.

I shipped bugs that would prevent people to upgrade to Pro, I had to give away Pro accounts for free to disappointed users etc. I made a lot of mistakes but I learnt a lot in the process so I really have zero regrets.

I also struggled to truly understand some error messages coming from StoreKit’s API which made me lose weeks of investigation. I later found that whenever users cancel their purchase before completion, iTunes returns a cryptic “Cannot connect to iTunes Store” error message. Great… but now I know it at least.

Feedbacks & user requests

Dealing with an constant flow of feature requests was quite distrubing at first. I had made a list of the features I wanted to build for myself since that’s where this app project started. But somehow users kept sending me more and more requests that didn’t necessarily align with what I had in mind initially.

I had to learn to find a balance between what I thought was good for the app, what people said they wanted, what people think they want, and what I think people will find useful even though they have no way to even concive that such feature could be built.

From MVP to side-business to lifestyle business

During the first few months after the launch, I saw a slow but steady growth and I kept working on new features. 6 months down the line, the app started making pocket money that helped pay the bills. At the end of August last year, I left my job at Google to become indie developer full time and give this app all my attention to bring it to the next level. Today, I’m close to be able to cover my living expenses from this app alone. But that’s just the beginning.

365 days, a few facts.

Key facts

  • 1 launch + 20 updates
  • 1,209 cups of coffee (I didn’t count but that’s probably accurate)
  • ~47,000 lines of code (excluding frameworks and Pods) as of when I’m writing this. I’m not done building features for this app.
  • 1 Pro Plan worth $5 (price will increase in 2019 as more features have been added)
  • Several thousands daily active users
  • Steady growth and almost enough revenue to cover my living expenses in Barcelona, Spain.

Fun facts

  • YT Tracker’s biggest YouTube has more than 3 million suscribers.
  • YT Tracker’s most active user opened the app more than 6,000 times in the last 6 months. That’s 30+ openings per day.
  • 1,000,000 taps on the refresh button for the main tracker in 365 days. This button is used on average every 30 seconds by a user somewhere around the world.
  • 22,000 screenshots from the Home screen were taken in 365 days.
  • 1,800 feedbacks were sent from the app to my inbox. I try to respond to most of them, unless they make no sense at all.

Rapid fire questions / answers from my Instagram story:

How can you handle everything in the app? Isn’t that too much?

That’s the whole point of being an indie developer. It brings variety in the job. It’s no longer just about coding. You need to know how to design, market, sell, brainstorm features, talk to users and it makes every day different than the previous one. I really see that aspect as a feature in the lifestyle rather than a bug.

How has your life changed after going an indie developer?

It’s a radically different lifestyle than when I had full time job. You can set your own schedule, your own deadline and work on whatever the heck you want. But… you need discipline to maintain a healthy lifestyle too. It’s easy to get lost and work until stupid hours and not excercice and think you’ll do all these things once you’re done working. The reality is that work never really stops, there is always going to be a new feature or a new app idea to spend time on. The freedom is definitely awesome and I’m looking forward to consolidate my business lifestyle in 2019.

How do you stay motivated?

It’s relatively easy to stay motivated when everything goes well. As of when I’m writing this, everything is going well and my AppStore revenue has been growing for the last 14 months straight. I’m yet to live a period of famine where things don’t go as well and I’m sure staying motivated will be much harder then. Follow the updates on Instagram @edouard_iosdev to find out when it will happen because I’m sure it will at some point. 🤯🔥

It can get boring to work on the same app all the time. Another approach that I follow is to force myself to take breaks and leave YT Tracker aside once in a while. When I take breaks, it doesn’t necesarily mean I stop working all together. I can ship a new app or blog about something or learn something new etc… and that really helps getting back into it in full force later.

How good reviews can improve your app’s position?

Ratings & reviews are super important to rank better on the AppStore, even though I do not know how Apple’s search algorithms really work, I did see an impact on my AppStore visibility after I added the review prompt inside the app and started getting more and more ratings and reviews. It definitly helps.

How do you handle haters?

So far I’ve been lucky on that front. The only thing I had to deal with was a few disappointed users who didn’t really understand how my app works and had other expectations. I got nastly emails saying “I downloaded your app and I’m not getting more subscribers” or “You’re just money thirsty, why isn’t everything free in your stupid app”. Etc… but I understand that for some people who living in the Facebook / Snapchat / Instagram world, expecting to get everything for free is the norm. What they don’t realize is that they actually pay for the service with their data. My approach is and will remain different.

How many hours did it take to build YT Tracker?

The first version took me a couple weeks to build considering I had a full time job and intense family obligations at the time so I would say maybe 50 and 75 hours in total for the V1.0. Since then this app has become my full time obligations and I stopped counting the hours but by now we’re probably looking at thousands of hours.

How did the idea came about?

The idea came from a problem I was facing myself and I thought of something to fix it, then I built it.

What’s your monetization strategy?

YT Tracker is a freemium app. Basic functionalities are available for free and Premium features can be unlocked for a one-time purchase. I also use ads as a way to incentive people to upgrade and get a “cleaner” / ad free experience.

Where do we go from here?

I’ll continue to work on YT Tracker thoughout 2019 and beyond, as long as I can add value to the YouTubers community. I might even branch out to other apps to better server that niche. If you’ve found this article helpful and would like to follow my journey more closely you can find me on Instagram here where I post Stories to share my progress on a daily basis.

See you there and until then, happy coding.

Cheers, Ed

comments powered by Disqus