Exactly 15 years ago on November 9th, 2009, I got my first MacBook and started learning how to build apps. I was fascinated with the idea that you can build something that other people will find useful and enjoy using. I also heard about those "indie developers" on Twitter who were making a living solely from their own apps and I found it fascinating. I got it into my head back then that this is what I want to be doing too, and somehow this dream, no matter how elusive and unattainable it felt over the years, never left me.
In this blog post I want to look at some of the biggest lessons I took from all these years, and also share some of my thoughts on this topic. As a disclaimer, by no means do I want to pretend like I am some kind of "success story". It took me a really long time to get to the point where I can cover all my expenses with income from my app(s) and it's really only been this year when that income is at a comfortable level.
Also, another disclaimer: many of these will be personal and not necessarily generally applicable. In no particular order, here we go:
Enjoy the process
I think what made it possible for me to stick with it for so long is that I really enjoy the process of coming up with the features, figuring out what the user interface should be, solving technical challenges when building the features, and then releasing improvements to my users. I enjoy the craft. If you don't enjoy the process, it will be extremely difficult to stick with it when things get tough.
Truly understand your motivation
Back when I was younger I used to pride myself on not caring about the money as much as most people seem to do. Which was important at the time because I wasn't making almost any money from my apps for a long time. Obviously back then I was still in high school (and later university) and my expenses were very low. My motivation was to be working on something meaningful, building something useful that I will enjoy using myself, and that hopefully other people will find useful and enjoyable to use as well. Obviously, as I got older and left university, my expenses went up and I needed to make more money, but still, the way I see it is this: I make money so that I can do what I love for work, not the other way around.
This is not to say that money isn't important, obviously, we live in a capitalistic world, but what I am trying to say that if you have making as much money as possible high on your list of priorities, trying to be an indie is probably not the right path. Especially not if you come from a programming background. I think it's important to be honest with yourself about your priorities (there are no good or bad ones, we are all different), and then decide accordingly.
Also, I wouldn't be fully honest if I hadn't mentioned that for a long time when I was younger, part of my motivation was trying to prove myself. It might sound a bit dark but there were times where it felt like I'm fighting to justify my existence in the world through my work. Not the purest form of motivation, but using trauma as a fuel can be a very powerful tool.
Risk and reward
I saw a post on Reddit where they were comparing trying to make a living with your apps to winning a lottery. It's really exceptionally hard. The way I see it: The risk is losing the money you could've been making by working for a company. Losing the career opportunities that come from working for large companies. The reward is finding your work fulfilling, having the opportunity to make your own decisions about the product, and having the sense of ownership over what you do. And if it works, have the sense that you are making a positive change in the world for people that are using what you built. That to me made it a worthy pursuit, despite all the struggles and doubts, and despite the reduced financial upside. Also, as a fallback, I thought that I could always take a job at a company if I came to the conclusion that I couldn't make it work.
Don't be realistic
There is something to be said for just going for it in spite of the odds being stacked heavily against you. The competition is global. The chances of 'making it' are slim. But that's what makes it even more enticing. If you want it badly enough, if you stick with it long enough, if you make the right decisions at the pivotal moments, it might just work out eventually. At least that's why I've been telling myself for all these years. And in my opinion, it's absolutely worth it to go for it with everything that you've got. Because what's the alternative? Taking the safe path because that was the 'reasonable' thing to do, growing old, and then wondering what things could've been like had you pursued what you wanted?
The line between success and failure is thin
What I mean by this: Still three years ago, I could've come to the conclusion that I failed, because after many years of working, I still wasn't making enough to cover even my basic living expenses and I still had to do part-time freelancing on the side. I could've said to myself back then: okay, that's it, I am giving up. Clearly I wasn't made for this. I don't have what it takes to be successful as an indie. But then there was the other part of me, wondering what if it's just around the corner? The feedback for my time tracking app from my users was great. I still believed in the premise of the app and I thought that if I could find a way to get it into the hands of enough people, I would be fine. So I decided to stick with it. To keep building features that complement the core experience of the app. Also, I thought that I owe it to my younger self not to give up on his dreams. I wanted to make the 16-year-old me proud. And I wanted to make the future 40-year-old me not be filled with regrets over giving up on this.
Find your niche
For me, I've always wanted to have a product that I strongly believe in, and that also scratches my own itch. After working on a GPS sports tracker for a few years and not seeing much growth, I decided to build a personal time tracking app (timelines.app). I always found the topic of managing your own time fascinating, and I felt like I had some good ideas on how to approach the functionality in a different way than the competition. My long-term goal is to keep striving to have the best app on the App Store for this specific purpose - making the most of your time.
Obviously, there are other ways to approach it. Some people like to have a large portfolio of apps because it makes things more interesting for them. Also, there is an argument to be made for not putting all your eggs into one basket. Whatever piques your interest, I am just saying what worked for me.
Provide additional value
In the era of ChatGPT wrappers and people trying to ride the latest wave in tech, even if that makes more money temporarily, I believe in providing sustainable value over time. In my case, one of the examples is the unique interactive visualizations in my app. Ideally, it should be something useful and technically challenging to build so that others can't just copy it easily. Also, I try to always go the extra mile when building new functionality and improving existing features to make it as useful as possible while not making it overly complex, and always striving to make it completely reliable.
Prepare to wear many hats
In my opinion, this is what makes indie development so tough. You have to take care of so many things. Product, design, development, marketing, promotion, user support, social media. It makes things overwhelming but it also keeps you on your toes, and I like the variety of it because if I was just a programmer, I can imagine it would get monotonous after some time.
What if I am not good enough?
This is a question that I've asked myself so many times. And many times the answer is "Yes, I am not good enough". But instead of going down the rabbit hole of what that means, I try to remind myself that this is not the right question to be asking myself. The better question is: "Am I doing my best?" And if the answer to that is no - then why not? Are you getting enough sleep? Are you prioritizing eating healthy and exercising regularly? Are you putting in focused work time without constant distractions from your phone? If the doubts are nagging at you, try to mold them a bit so that they go from dragging you down to lifting you up.
Reflect regularly
I feel like by far the best tool in life, not just in indie app development, is deep reflection and introspection. I try to do weekly reviews where I go over different areas of my life and reflect on how things went there. I also try to do monthly reviews, where I look at things more broadly (though I must admit that I'm not very consistent with those). And for day-to-day mental hygiene and reflection, I do my daily freeform writing.
Understand your strengths and weaknesses
Through having been in the industry for many years now and doing these regular reflections, I think I have a decent idea of what my strengths and weaknesses are. I feel like I am fairly good at programming and making decisions about the product itself. But I am pretty bad at marketing, social media, and generally presenting my work online. That is something I need to improve.
I feel like my biggest strength is working through things and finishing them off even when it seems very challenging and it takes a long time. But this strength also happens to be a weakness - things tend to take me way too long. I tend to spend way too much time on miniature details, and then neglecting other parts of my responsibilities that would have far greater impact on the business. So I am trying to be mindful about that.
Regardless of your own personal mix of strengths and weaknesses, being aware of them and utilizing them to your advantage is the best way to go, in my opinion.
Learn and apply your lessons
This follows closely on the previous paragraph, and it's probably my weakest part - it's so easy to be stuck in your ways, doing the same thing over and over again. In the regular weekly reviews and daily writings, I oftentimes felt like I've had revelations about all the things I should improve in my life, only to find myself back in the same routine shortly afterward.
I think the best way to approach this is to try to be compassionate with yourself. Approach making the improvements in your life one small step at a time. And keep evolving.
For me specifically, it means finding a better split between working and personal time. Scheduling doing marketing on a regular basis. Improving my online presence. Staying more on top of what's happening in the iOS community. Just to name a few.
Find people who can help propel you forward
Out of all the points in this post, this is by far what has made the biggest difference in my indie journey. Back in 2018, I attended a conference in Denver where I met a developer friend who was an indie. He told me about a small group of successful indie developers that he was a part of and alluded that maybe once they are looking for more members, I could try applying to join them. Half a year later, I applied and I got in. We help each other out with all things related to indie app development, such as design, marketing, monetization, coding, and more.
In particular, getting feedback and advice from them about how to improve monetization in my app has been immensely helpful. Eventually, I moved to the subscription model, improved my paywall, increased prices, added free trial, and much more. All that led to a significant increase in revenue over the last several years, and just last month (October 2024) I reached my long-term 'stretch-goal' monthly revenue which seemed completely unrealistic even just a few years ago.
I love how in the group it's a very encouraging environment where we celebrate each other's successes and I am very grateful for being a part of it.
Luck
It might seem ridiculous for me to put this here as a "lesson", but hear me out. It wouldn't be fair to not mention that in some part the reason why I eventually found at least some success is luck. I was lucky that my time tracking app was featured on the App Store when I first released it. I was lucky to meet the developer friend who introduced me to the group of successful indies. It was luck that my time tracking app got mentioned on several podcasts and YouTube videos in recent years. But at the same time - in all these instances it required me to take a chance. To contact the App Store Editorial team. To travel to conferences and try to meet people there. To build an app that serves its purpose and some people find it the best match for what they need.
What I am trying to say here: I believe the best any of us can do is to play to our strengths, try to do the best that we can, keep putting in the work, and maybe the universe will help us out here and there eventually.
Some closing ideas
I haven't written a blog post for almost two years so my writing got a bit rusty, but I hope you find at least some of this inspiring. Also please take everything that I wrote with a grain of salt, I don't want to try to appear as if I have all the answers because I certainly don't. And if I were to look at it honestly, I feel like the modest success that I eventually found, it was more in spite of my approach instead of because of it.
In the traditional business sense, I've probably done most things wrong. But that doesn't matter, onward and upward from here! Many of the things that I wrote here are also reminders for me and I'm looking forward to implementing them more in the near future.
Some more thoughts: As much as possible try to leave the ego out of it. The world doesn't owe you anything. Whether it ends up working or not, it doesn't change your value as a person. Try to balance out what you enjoy working on with what's good for business. Prioritize having fun with your work. While things can always be better, they could also be worse, so try to be grateful for your current circumstances. And if things are not the way you'd like them to be yet, it could just be that the reality hasn't caught up yet. It isn't over until you decide to stop trying.
I feel incredibly lucky to be doing this as my job and to be living in the only era in history that something like this is possible. If you want to take a look at my time tracking app, you can do so here: timelines.app (the website needs major improvements)
And if you are pursuing any sort of creative endeavor, I am rooting for you! Feel free to comment on this blog post or reach out to me at lukas [at] glimsoft.com if you have any questions or comments.