Growing My First App to Profitability With No Marketing Experience

Hi! I'm Ivan Mir, and I'm running a small company called QotoQot with my co-founder and wife, Irina. We are originally from St. Petersburg, Russia, but nowadays live in Valdivia, a small city in southern Chile.

Qbserve ("cube-serve") is an automatic time tracker for Mac that gives you real-time productivity feedback, tracks project time automatically, and then generates timesheets and invoices. Unlike a majority of our competitors, the app doesn't have any team features and instead focuses on providing the best individual time-tracking experience. The other important distinction is privacy: Qbserve logs all your browsing and document history, but none of this ever leaves your Mac.

So the app's core audience is individuals who want to track their productivity or work hours privately — and not because their boss ordered them to install tracking software. After two and a half years, Qbserve earns around $2,000 each month and has over 4,000 users.


What motivated you to get started with Qbserve?

After our gaming startup closed in December 2014, we started looking for freelance work to build up a new financial cushion outside of the game development space, which had become too crowded and offered scarce remote jobs. I decided to move to desktop and mobile applications to leverage my knowledge of Objective-C and C#.

Before the startup, we had been working in cycles of client and independent projects for five years, so building some new product was inevitable. We had both previously used RescueTime and even paid for the pro version for a year, but found that it didn’t help much. Their weekly productivity reports only made us feel slightly guilty about the wasted time. And of course it creeped me out that there was no self-hosted solution — sending all my browsing history to their servers made me pretty uncomfortable.

So we stopped using it. But I had always dreamed of a better alternative, and figured now was the perfect time to give it a go. At best, this project would finally achieve my dream of self-employment. At worst, I would get a product I had always wanted and a first app in my portfolio. I knew that RescueTime was popular, so I didn't research the market much and just boldly assumed that I could get a part of their audience by providing a better user experience.

What went into building the initial product?

Qbserve is a native app built with Objective-C and SQLite. The tracking itself relies heavily on macOS screen-reading APIs for persons with disabilities. Unfortunately, being so close to the unique features of macOS means the app is unportable to other operating systems, including iOS that doesn't allow app tracking for security reasons. This is also the reason why Qbserve is not present on the Mac App Store — Apple requires a restrictive sandbox for the apps that are sold there.

It's hard to estimate the time spent in parallel with freelancing (if only I had had Qbserve back then to track it!), but I think it was about half a year of full-time work in total. This was of course longer than I had expected, despite trying to prevent overengineering and feature creep. For example, I had anticipated that by-project tracking would be important for many customers, but the goal of the minimum viable product was to compete in the less busy niche of personal productivity tracking. I also knew that some customers with multiple Macs were going to ask for data synchronization, but I lacked the experience necessary for this level of complexity, so I didn't even try to plan the app's architecture for working with a server.

Instead, I focused on easy UX wins, like the dynamic icons whose angry red color shames you into working, or flexible tracking settings that weren't hard to implement but allow users to adapt the app for their individual workflows. I also manually categorized thousands of popular sites and apps, so that Qbserve could automatically sort them into "productive," "neutral," and "distracting" buckets.

The hardest phase was before the launch, where we spent weeks on writing and rewriting various texts, building a landing page, setting up a reseller account, running a beta test and doing all the other prerelease things. Multitasking was so heavy that eventually the app was released under its weird working name, Qbserve, because we gave up on finding anything related to time tracking that wasn't already taken. This name probably hurt its overall word-of-mouth by being both hard to remember and hard to spell when you hear it.

How have you attracted users and grown Qbserve?

Right after the release, we posted the app to Product Hunt, where it became No. 5 that day. Ten days later, I created a "Show HN" on Hacker News, and Qbserve became one of the top submissions that week, bringing a huge stream of sales and feedback. I've spent multiple days doing nothing but replying to dozens of comments and support requests.

Despite the successful launch, our press outreach turned out to be a failure. Reporters from a few sites (mostly non-English ones) contacted me for a review, but otherwise the press wasn't interested in Qbserve at all. Even Apple-related sites have ignored our pitches, and we still have no reviews from them more than two years later.

Later, I came to understand that Mac app reviews simply don't bring enough traffic, even for sites focused on the Apple ecosystem, because Macs aren't that popular compared to other platforms (making up just 10% of desktops worldwide and 20% in the United States). But back then it was extremely frustrating, and in an attempt to fix it, we decided to go to the Apple Worldwide Developers Conference to catch some reporters in person. This was the most expensive mistake in the history of the app. It turns out that the Apple-related press community is more of a private club and not the free-for-all we had experienced in the game-development world. So we barely connected with anybody despite our best efforts. But even if we had known the right people, I doubt that flying to California would have been a cost-efficient way to promote the app.

After being ignored by reporters, we tried to maximize the app's exposure at places that allow user submissions:

While all these sites bring little traffic on their own, you never know who will find your product there. Slowly, Qbserve started getting included in those typical "Best Apps for X" articles — maybe the writers had found it in one of these lists? Another "spray-and-pray" approach we used to increase Qbserve's popularity was participating in many giveaways and cheap app-bundle sales that paid less than $1 per license.

After exhausting most of the options of getting links to the app's landing page itself, we switched to content marketing. I spent a couple of months learning to write better and drafting some in-depth articles for our blog. A couple of them got to the top of Hacker News and attracted quality backlinks to our site, but most didn't go beyond a couple of newsletters.

We also tried the "side-project marketing" tactics with Sloth Worth, a browser extension for tracking money lost due to procrastination. It was quite easy to build by using the database of distracting sites from Qbserve. This extension did well on Product Hunt and brought a few backlinks from reputable sites, including Lifehacker.

The marketing channels that didn't work well:

  • Twitter — even when my article got tweeted by a popular developer with over 60,000 real followers, it received just a few hundreds of clicks. Also, there is no long-term effect because tweets "live" less than a day.
  • Reddit — the conversion rates are close to zero, and many subs are really hostile to self-promotion, even when the content is good. Though freebies like Sloth Worth can do well.
  • Advertorials in Apple-related blogs and newsletters — most of them didn't even come close to breaking even (we were tracking conversions with discount codes).
  • Affiliate program — the majority of applications came from really spammy sites, and the few good partners didn't bring in any sales.

What's your business model, and how have you grown your revenue?

Qbserve is sold for $40 per seat, and we do not charge for updates. The reason for this generous pricing model is that there never was a plan for developing the app into something bigger. We made many specific improvements, but none of them would justify an upgrade fee or a subscription for most customers. The only exception was project tracking, but at the time of adding it, the customer base was still small, and most people had bought the app only a year before. To avoid a problem like this for the next product, I would plan the finances and a road map at the early stage.

We use FastSpring as a reseller because they deal with international sales taxes and license generation. Their fee is 8.9% per transaction, which is a bit high but still much better than the 30% charged by the App Store. Other than that and $10 per month for the site hosting, there are no regular expenses, so the remaining 90% is profit.

I already mentioned a huge boost from Hacker News that bootstrapped the app: we earned over $20,000 in one month, with a $4,269 peak on the day when the trial ended for most new customers. In the following year, the revenue was only $15,370, so without Hacker News, I wouldn't have been able to work on Qbserve almost full-time.

This honeymoon was over pretty quick. Two months later, Qbserve started earning less than $1,000. Being stressed by the app's low visibility, I made a typical mistake and decided that if we added more functionality, like project tracking, the app would get more sales and love from reviewers. But of course, after more than half a year of work and all the new shiny features, the revenue barely moved and my pitches were still being ignored by reporters and bloggers.

A positive side effect from coding so much was overoptimizing my workflow and reaching 200 hours of work a month (though that meant $5 per hour with the current revenue). An article that mentioned Qbserve got to the top of Hacker News again and got us an additional $4,000 that month, with a long tail of increased sales. From there it went viral (over 125,000 reads so far) and brought many backlinks to our site, which helped rank it higher in the search results.

Qbserve is still not in the top positions when you search for a time tracker for Mac, but improving organic traffic from search has been the best growth strategy for us since we can't bid for ads as much as our subscription-based competitors.

revenue chart

What are your goals for the future?

Qbserve already feels a bit too complex compared to the first iterations when it was a pure productivity-tracking experience. At the same time, we barely get any feature requests nowadays, so I would prefer to keep it from bloating any more. Instead, we are going to polish the existing functionality to make it more comfortable to use and do a small facelift to match the visual style of newer macOS versions.

For now, we decided not to localize the app because purchases from most non-English-speaking countries are below 2%. Localization requires a lot of work, both on the website and in the code, and considering the current revenue, it probably wouldn't pay for itself. We also can't provide support in languages other than Russian and Spanish, so having our site in French or German would be somewhat misleading.

On the marketing side, we will continue looking for ways to improve the site ranking in the search results, because that's Qbserve's main channel of revenue growth. It will also benefit our future projects because we are keeping all the products on the same domain.

What are the biggest challenges you've faced and obstacles you've overcome? If you had to start over, what would you do differently?

The biggest challenge was a very naive understanding of how the modern internet economy works. The idea that good software is easy to promote is just as silly as the "good software sells itself" myth. I would definitely spend more time learning marketing. I still have a lot to learn, even after all the experience with Qbserve.

Financewise, I would also split the licensing into basic and professional tiers to make the complex features pay for themselves. Doing it from the start would have been easy, but nowadays it would require many adjustments in the design and code.

While I'm pretty happy about the extensibility and stability of the code base, I wish we had spent more time planning the UIs for the future. For example, Qbserve still doesn't support full-screen-window resizing because of the early design mistakes. It would be hard to correct them now without redesigning the app, but we have already polished the user experience, and thousands of customers are used to Qbserve as it is. I think it's safe to say that everybody hates redesigns (except for their authors), so we'll try to fix these problems as carefully as possible.

Have you found anything particularly helpful or advantageous?

Having a co-founder is really helpful because you can always ask for a second opinion. This is especially important when you start looking at the product from the engineering angle or get obsessed with unimportant details — a partner can get you back to your senses.

I had never expected something like this, but our customers have turned out to be amazing — they've sent us not only many useful suggestions but also a whole lot of good vibes. When you're struggling with something for weeks and suddenly receive a grateful email on how your product helped someone to spend more time with their kids, it's just incredible and instantly recharges your batteries.

Probably the biggest advantage was having the opportunity to learn and do things at my own pace because of our additional streams of income — I did freelance part time in the first year, and Irina works on her stock illustration portfolio full-time, switching to QotoQot tasks when I need her help. I'd have made even more mistakes if I had had the pressure of running out of money to live.

What's your advice for indie hackers who are just starting out?

Even the best articles and books about business or marketing are a map and not a territory. The only way to learn the territory is to explore it, so start small and release as fast as possible. Avoid getting stuck in code because development is only a means to the goal of selling a product.

Unless you have a spare five-digit budget for the top agencies, don't hire anybody for marketing, press outreach or SEO — do it yourself, and the results will be many times better than what you can get for bootstrapped money. Spend at least a trial period on services like Ahrefs to understand how information flows on the internet — you'll be amazed by all the underwater currents and trends.

Pay a lot of attention to the user experience, not only UIs but the whole interaction with your company and products. Always look for feedback from your target audience, even if you're at the idea stage.

Here are the resources I've used for learning these topics:

Where can we go to learn more?

See Qbserve itself and our smaller products at I occasionally share some interesting articles on my slow Twitter, and Irina posts her daily illustrations on Instagram.

Also, check out our blog for guides to building your own products and staying efficient. I would especially recommend the "What You Should Know as a Founder of a Software Company" article because it contains lots of links that could be useful even for an experienced indie hacker.

There are many small nuances that wouldn't fit into the interview, so I'll be glad to respond in more detail in the comments.

Ivan Mir , Founder of Qbserve

Want to build your own business like Qbserve?

You should join the Indie Hackers community! 🤗

We're a few thousand founders helping each other build profitable businesses and side projects. Come share what you're working on and get feedback from your peers.

Not ready to get started on your product yet? No problem. The community is a great place to meet people, learn, and get your feet wet. Feel free to just browse!

Courtland Allen , Indie Hackers founder