Kirill Rogovoy

Code · Design · BJJ · Travel · Beer

Get latest posts and extra content
<- Back to the list

I quit my business to start an open-source dev tool

Published 2022-07-21

This is a story of me quitting my job as a web dev, starting my first SaaS, burning through all of my savings, and finding what I really wanted to do.

Also, this post is my attempt to start sharing my honest experiences, however good or bad, on the internet. Both as a form of journaling for myself and as a case study for the community.

I want these to be more like personal letters and less like self-promotional feel-good traffic-generating positively-thinking marketing posts.

I want to stay vulnerable and honest.

It's going to be ugly.

Quitting my job to start an online product

In January 2020, I quit my job as a web developer to start a SaaS with a partner. It was the boldest move I've ever made in my professional life. I was scared but unbelievably excited. Starting my own project has been my gestalt for years.

It's finally happening!

I was very lucky to have been making more than I've been spending for several years and investing that in S&P500 during the bull phase of the market. It resulted in enough savings to not think about money for at least a few years.

Looking back, I can't help but think that having too much cash runway can jeopardize your venture: too easy to get comfortable.

We didn't know what we wanted to build. Still, we wanted to work together (having been colleagues for 3.5+ years), and we knew that the stars might not align again in the future.

With a sense of freedom but also immense pressure that I couldn't explain, we started to brainstorm ideas. At that moment, neither of us had something he had always wanted to build (and that would also qualify as a viable business opportunity), so the process was a combination of looking inward and seeking gaps in markets.

It was the first time I internalized that the price for all the freedom I felt at the time was the heavy burden of uncertainty. Before 2020, I had been a web developer (with a mixture of leading teams, product management, analytics, and other things) for 7 years. There had always been someone to tell me, at least on some level, what goal should be achieved.

Being able to do whatever I wanted did not taste as sweet as I had pictured. It felt like we could make any number of bad decisions, and there was nobody to tell us that.

However, that feeling was also one of the best exercises for taking responsibility for your life. In the end, dealing with uncertainty and taking personal responsibility for tough decisions are things you train by practicing, not learning from books.

I'm so tempted to say that, in hindsight, that experience has taught me to take ultimate responsibility for my life decisions and made me an exceptionally self-directed person. But it would be a lie. I'm 2.5 years into "doing whatever I want", and, at best, I've learned to freak out less. Being truly responsible for one's each and every decision is tough. Not as a concept but as a practice.

Taking on food tech

Those few days of brainstorming and scoring different ideas using a dozen factors finally led us to the one problem we chose to solve.

We wanted all restaurants and cafes in the world to have modern digital menus with high-quality photos of each meal, and the ability to take orders online. (Keep in mind that we are still several months away from the worldwide pandemic.)

We also saw a business opportunity: why wouldn't restaurants pay us for a significant improvement (in our minds) of the experience of their visitors.

We called our project Foodba simply because there was a cheap-ish .com domain. I know.

What we didn't see at the moment is that we only cared about the visitors. We knew nothing about people running restaurants, nor did we really care.

Being blind to that, we ran 10s of "customer interviews" with almost everybody telling us that having those digital menus would be great. None of those people were running restaurants.

Had we talked to people that we actually expected to pay us, the whole venture would have been different.

Anyway, we ended up building an MVP and leveraging our personal networks to find first several customers that would agree to use our product for free. In return, we could study how they operated in general, along with their specific feedback about the product.

We actually enjoyed this period. We had to do everything: build the product, talk to customers, design and print QR codes for them, and even take professional photos of 100s of meals. We were hustling!

We didn't make money yet, but it already started to feel like a hell of an adventure.

Wear masks and keep distance

Then Covid happened. Ouch!

Undoubtedly, it has shaken almost every industry, with the hospitality businesses being especially vulnerable. Today you serve; tomorrow, you're closed. You launch takeaway, but nobody orders. You lean on delivery, but the food platform commissions only bring you losses.

To make things worse, nobody knew what to expect next, and everybody was cutting losses. There was no solid ground. Problems would come and go in a matter of weeks, so it was problematic to capture a specific pain that we could solve.

At the same time, we felt like we really worked hard and were productive. Finally, it really felt like "building a startup": talking to customers almost every day, building something to solve at least some problem (however fleeting), getting feedback, etc.

It was exhausting but somewhat rewarding.

Looking back, I think the pandemic was the real reason we had any traction. People in crisis needed help, and we wanted to be useful.

Even though it never felt like we found any product-market fit, in December 2020 (one year in), we had almost 50 paid customers. In June, we had none, so it felt like a success!

Also, every indie hacker knows that the feeling of people actually handing you money for something you've done is ecstatic. At least in the beginning.

By that point, people would buy our product for a bunch of different reasons. None of them were allowed to have paper menus, so some just wanted a better experience than an ugly PDF behind a QR code. Some wanted to run their own delivery. Some wanted to run Facebook re-targeting campaigns. Some just thought that it was trendy to have a digital menu. Our "customer profile" was a mess.

Let's take a moment to reflect.

Two dudes spent one year building a product full-time. Results:

  • ~$600 MRR.
  • No clear product-market fit.
  • No clear way for scaling.

By this point, the cumulative opportunity cost is in $100,000s.

Would you continue such a venture?

That's a tough choice.

We did.

Product-market misfit

Still thinking back on our decision to continue, it's worth mentioning that, of course, it's not just about money.

We have learned so much. Not just about building a product but sales, marketing, UX, you name it.

Persistence. We have learned how to not quit when things don't work.

In the end, working on the business was simply fun and fulfilling.

And so, we began scaling.

From this point, there were only three kinds of tasks we could afford to do:

  1. Fixing something that's broken.
  2. Whatever brings us new customers.
  3. Whatever helps us spend less time on support.

Our problem with scaling was that we tried to do things as if we had a product-market fit without actually having it.

Usually, scaling your business means that you already have one or many sales/marketing channels that work on a small scale. You invest more time and money in developing them. You do it until you hit a point when growing it becomes more expensive than the potential output.

But it wasn't really our situation.

We were still unsure if our customer was closer to a hotel restaurant, a downtown tourist venue, or a local coffee shop.

A random venue from Google Ads would just sign up and use the service with no questions or assistance. At the same time, we would spend two days making custom QR codes and making a photoshoot for 60 menu items for a local restaurant in London, only to get ghosted. At least they fed us. Once.

It wasn't going well.

I still remember the adrenaline rush of cold-calling random Asian woks. Poor busy exhausted administrators couldn't understand what I was talking about. Can I just go back to coding, please?

Our search for whoever we thought was the customer and for a scalable channel to get them would continue for months. We tried cold calls, cold visits, cold emails, ads, SEO, flyers, referrals, partnerships, and more.

Somewhere around that time, I started to realize I didn't like what we were doing anymore. 😬

First, I didn't really care about our clients. I had zero friends who were in the restaurant business. I, personally, wasn't interested in how restaurants were run and what a life of a staff member would be like.

All I cared about was me and people like me, who, among other things, visited restaurants. But visitors weren't the ones who paid, nor could we find a reasonable way to change that.

Second, I started to get bored as a developer. In the beginning, I'd learn a thing or two about running serverless functions, working with AWS, or optimizing images. But a QR menu service, with all its specialized features, is just a CRUD app.

It wasn't a problem per se. It's not realistic to have an app that's fun and challenging to develop day after day. Most apps on the internet are CRUD apps with bells and whistles.

However, coding had for a long time been my shelter. The place I could go after a day of palm-sweating cold calls and enjoy doing something I was actually good at. But for whatever reason, coding stopped being that place, and I didn't want to make things more complex just for entertainment.

Another sign of disliking the project was that I didn't want to discuss it with other people anymore. I felt ashamed but didn't know of what. I felt ashamed of feeling ashamed too.

And that's how 2021 went. We kept trying to find the product-market fit. Every week it seemed like the breakthrough was around the corner.

Some things worked. Most didn't.

We ended up growing our customer base from 50 to around 150 that year, tripling our MRR.

For the most part, we discovered a thousand ways that didn't work for us. I would often think about that to comfort myself and make it look like we were making progress.

More importantly, we managed to reflect on the key turning points that led us to where we were; our biases and blind spots that kept us digging in the wrong direction. Or was the direction right, but we just executed poorly? I wouldn't know.

After a long New Year vacation, we agreed that the project wasn't doing well. We didn't know what to do, but we surely were demotivated.

Goodbye Blue Sky

(I live in Ukraine.)

I don't remember much between Feb 24 and late March. It has condensed into one hazy memory filled with sounds of sirens, midnight doom scrolling, and moving places.

All I can say is that I'm lucky to be writing this post on a fancy laptop while sipping fresh filter coffee in the beautiful city of Lviv, with all my body parts appropriately hanging from the right spots.

This post isn't about the war, and I'm certainly not the one to have suffered the most, but you can imagine that an experience like that might make one reflect more on their life choices.

That reflection made it crystal clear that it was time to turn the page.

Luckily, about the time I ran out of my savings, which had supported me for almost 2.5 years, our business started to generate just enough profit for me to not look for a job or a side gig.

We jointly decided to keep the business operating and heavily automate whatever still required our attention. But we quit investing any new effort.

Finally, we were free to choose what would be next. All the anxiety of "doing whatever you want" came back in an instant, on top of not knowing what would happen tomorrow in my physical environment.

Lessons (not) learned

It might seem that two and a half years of running a SaaS app should have given me a lot of insight on how to properly do it.

It has not.

At best, I went from having no idea to having some idea about what I was doing. At the same time, it made me feel much more comfortable about being incompetent.

It completely dispelled the illusion that one must first get good at something and then do it. It doesn't make much sense if you are a heart surgeon or a pilot. But when it comes to doing silly things on the web, such as in my case, I found the scrappy just-do-it attitude to be the most productive.

Lesson 1: find users you care about

I've learned that it's essential for me to be able to relate to my users deeply.

Over the last few months, I've spoken to a dozen of developers I had never met before. Oh. My. God. What a contrast.

We could talk for hours. I understand them. They understand me. It feels more like two kids discussing toys. I loved it!

Comparing that to people who run restaurants, the difference in my attitude is stark.

Although typing curly braces isn't by far the only interest of mine, feeling that I'm "a part of the tribe" makes me want to contribute in a completely different way.

It also makes it much easier to actually use what you make.

When working for companies, I always felt the urge to improve the tools my team and I used. I don't know why. Instead of applying my craft and solving problems with it, I wanted to improve the craft itself. I wanted to think and talk about how we do more than what we do.

This realization made it clear: I want to do stuff for people I'm excited to talk to. Those I want to learn about even without having a project in mind.

Lesson 2: second order effects

Whatever project you do, there are always results that outlive the project: skills acquired, people met, doors opened.

Turns out, you can (and should) consider that when choosing what to do.

With Foodba, I didn't. Therefore:

  • I gained a lot of domain knowledge (food industry) I will not use.
  • I gained zero contacts that could be my future customers, partners, employees, employers, etc.
  • I didn't increase my "luck surface area."

That sucks because, as I stop working on Foodba, it feels like not much has changed since 2020. It doesn't feel like I gained any inertia. No unfair advantages. No trump cards to play.

This time, I can do better. At least by entering the domain where I see myself doing much more projects and creating long-lasting value beyond any specific endeavor.

Example? You are looking at it.

Tim Ferriss once said on his podcast something that stuck with me:

Even if this fails, are there skills and relationships that I can develop that will carry over into other things?

Lesson 3: pick the right kind of challenge

I want a challenge, but not any challenge.

The ability of an entrepreneur to do whatever it takes to get the job done is often romanticized. And for good reasons.

However, I've realized that I simply don't want to succeed at all costs. Doing what I love (most of the time) is in many ways more important to me.

There are skills I don't want to develop or activities that make me want to quit. Things like making cold calls, dealing with a lot of ops work, or writing SEO-optimized marketing posts.

Those aren't bad things to do. They are just not what fulfils me.

At the same time, there are a ton of difficult challenges I'm excited to take on:

  • Writing
  • Being proactively useful for the community
  • Build a community of my own
  • Mind-boggling tech problems
  • Building in public while staying authentic

Avoiding things I don't like doesn't mean I will stay away from opportunities that would work best if I did those things. I'll be happy to delegate them. I just want to make sure it's not something that's critical to do at the early stages.

Starting an open-source dev tool

Finally, pieces are coming together:

  1. I like making tools
  2. The tech community is my tribe
  3. It fits the challenges I chose

To me, the tech industry is unlike any other field.

It's brutal in its own ways. But also uniquely rewarding.

It's highly competitive but fairly meritocratic.

I believe it to still be the Wild West.

And so, I've decided to give it a try. I'll do my best to be as valuable as possible to my tribe while explicitly doing things I enjoy the most.

That includes several (scary) things I've never done:

  1. Starting a newsletter and this blog
  2. Exploring social media as a platform to create value
  3. Building in public while staying as honest as possible
  4. Finally, making a tool I have wanted for a long time, 100% open-source

Impulse.dev: first baby steps

In April, I posted my first public article since 2018: Writing HTML sucks and No-code doesn't help.

It brought 20K page views, 168 HN comments, and 40 email subscribers. Yay!

It might not seem like much, but it was nerve-wracking for a person who isn't used to any public attention or criticism.

Two months later, I released the first alpha version and recorded a 42-minute demo (I know!), available at impulse.dev.

Luckily, my partner from the previous venture joined me, so that period didn't feel lonely or like too much work.

I tried to write about our alpha release in Writing HTML sucks less with Impulse, but nobody read it.

When you spend several hours (or days) meticulously capturing your thoughts into text, and then nothing happens, you feel like nothing's worth doing anymore. :) But hey, it's a very long game, right?

Anyway, here I am, alternating between writing this post and thinking if any of this was ever a good idea.

I'm omitting a lot of details about building Impulse. This new journey deserves many more posts, and I'm already 3000 words in. :)

The last topic I haven't touched on is money. Everyone who ran open-source projects without significant backing from Big Tech would tell you that it's very hard to make a living off open-source. And they are right. I'd like to discuss it in detail in future posts, but it's definitely a long-term concern.

Follow my journey

If you liked this post, you might like those that will follow.

Subscribe to the newsletter using the form below, and follow me on Twitter.

If you use TailwindCSS, you might find impulse.dev useful!

See you next time! 🙌

P.S. I spent more than a week doing nothing but working on this post. Writing is fucking hard. If you have reached this far, thank you.


Follow me on Twitter or Share this post
Get latest posts and extra content

Other articles:

  • How to get good at any skill: day-by-day guide2023-05-07The only piece of wisdom you need to finally start learning
  • No architecture is better than bad architecture2022-11-14It took me several years to learn how to write code that scales to 10s of team members and a million lines of code. It took even more to learn to write stupid code again.
  • How I launched Impulse.dev2022-10-11I've been working on Impulse for six months, and a few weeks ago—Sep 28—I decided to finally make an official launch. In this post, I want to reflect on what happened before, during, and after that launch. What I've learned and what I could have done differently.