Kirill Rogovoy

Code · Design · BJJ · Travel · Beer

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

How I launched

Published 2022-10-11

I'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.

I've never understood the grandiosity of Launching The Product. Don't you just post a bunch of links on websites with tons of traffic and cross your fingers?

It turns out you can definitely do that, but it will likely depend on luck more than you think. I had to do it the naive way to learn this lesson.

Before we get to the lesson, though, let's start with the inputs. I'll talk about what I had before the launch, the decision to launch now (not sooner nor later), and what came out of it.

Input 1: Product

Impulse is an open-source dev tool for web developers. It's free, and there's no business behind it.

It means several things:

  1. There's no marketing budget. Putting money into acquiring users doesn't generate any money at the other end. So the decision here is to not put any money into the launch.
  2. The target audience is developers. More specifically, people who use React and TailwindCSS. Developers are opinionated, and the market is tricky.
  3. I can't (and am not incentivized to) apply any limited-offer kind of marketing, such as promo codes.

Also, Impulse is a single-player tool with no room for product-led marketing and no easy access to virality.

Having been in active development for six months, it went from "extremely buggy" to "slightly buggy" (the industry standard!) and also got a complete redesign a few weeks before the launch.

Input 2: Existing Impulse users

Impulse doesn't have any form of telemetry, so it's hard to say how many daily/weekly users it had. That's an unfortunate downside of running a browser-only self-hosted tool. I might decide to start collecting some minimal anonymized data in the future, but it's a tricky subject.

So the only data I had about users was anecdotal. Other than myself and my co-founder, I knew of just several people who would use Impulse sometimes.

There is, however, a secondary metric that at least can show some dynamics - downloads from NPM:

  • July: 299
  • August: 332
  • September (before launching): 409

One should not rely on this data in general because:

  1. An undefined % of downloads is automated: bots, CI, local hooks, etc.
  2. It's impossible to tell the retention. An undefined % of real people could uninstall the package just a few minutes after the download, and I wouldn't know.

However, you can still use these numbers to have some idea about the relative change in overall usage.

Some other product-related numbers before the launch:

  1. 30 Discord chat members
  2. 94 Github stars

Input 3: Personal audience

I had not been doing much publicly before starting Impulse, so the circle of people interested in hearing from me was close to "nobody".

Still, something is better than nothing. The numbers were:

  1. 140 followers on Twitter.
  2. 50 email subscribers from my previous writing.

I didn't have a vast private network either: just a handful of people who are relevant to the product and would be interested in helping me out.

Last but not least, I hadn't spent much time in development chats or communities. A few comments on HN, an argument on Reddit, and five minutes of scrolling Twitter are the limit of my online social activity for the day. Most of my social life happens offline.

So I'm not a recognized member of any specific online dev community.

Oh, and I don't have a day job, so there are no colleagues other than my co-founder.

Why launch now?

Arguably, the main risk here was launching too early for several reasons.

First, your product might be too raw, so even in the case of a successful launch, not many people would stick.

In the case of Impulse, we've been dogfooding it for long enough to hunt down most bugs and develop a usable, familiar, and pleasant UI.

Second, it's essential to communicate your product's value and what it does. Things like the website copy, README, tag lines, pictures, demos, etc.

I've struggled to explain what Impulse did and why since the beginning. I'm still not happy with that part, but six months was enough for better wording to emerge.

Third, I tend to see product launches mainly as multipliers of whatever traction you already have. There's a lot of luck involved, but your existing users and audience are, I believe, essential to a good launch.

For Impulse, the user base was definitely a weak spot and a good reason to push the launch back, but here's why I decided to go for it.

I've been working exclusively on this project for half a year and... I don't really know where it's going. One of the primary goals from the beginning was to make a product I could use for most of my UI work. And oh my God, have I achieved that. Having used Impulse regularly for months (including designing Impulse itself and, I can't imagine going back.

However, the other goal, expectedly, was to see if other people needed it and make a product that would be great to use for others.

It would be hard to continue to work on a product no one needs. And to figure that out, I need a stream of feedback. I need to test the demand.

Hence, launching Impulse was supposed to provide some clarity on that front. Ideally, you should have done more marketing and talked to the users more. In practice, I was past all of my deadlines for getting meaningful traction.

Before the launch day

"He who has begun has half done." — Horace

One lesson I could take away from the "launching guides" was that you have to pre-launch your launch. People should know you are launching, and posting a few teasers about your product doesn't hurt either.

So once I knew the launch date (I set it a few days in advance), I let the people know via Twitter, Discord, and email.

I could probably take it somewhat further, but I was too lazy. One missed opportunity here is that I could reach out to many more people privately, hoping they would upvote my postings, but it felt too ingenuine.

Another pre-launch thing you can't ignore is simply making sure that your website is accessible and fast, the meta tags for social sharing are set correctly, and Google indexes what it needs to index.

As I would learn, most of the launching happens before the launch day. It's not hard to press a bunch of "submit" buttons. The hard part is creating enough momentum for your launch to have a real effect.

Those include working on:

  • Brand awareness
  • Communities
  • Twitter following and capturing emails
  • Press coverage
  • and much more

But why do you need all that?

Well, if you want tons of people to see your product, you need a lot of upvotes, right? More upvotes -> more people see it -> more upvotes, and so on. Of course, it's not cool to ask your whole extended family and ex-classmates to create Product Hunt accounts and go vote for you. Such behavior will quickly get you in trouble.

But nobody said you couldn't broadcast your launch on the internet and "let people know." (Product Hunt explicitly allows you to ask people to come to visit and comment, but not vote).

Another reason is that the second you submit your posts to websites like Product Hunt or Hacker News, that post stays in some sort of limbo: Unless enough people upvote it within a short period of time (the difference even between 0 and 10 upvotes at this point is huge), the post might never really surface. So you need that kick-starter crew more than anything.

Now, this whole tactic may seem ingenuine. Shouldn't the product's rank depend solely on the product itself?

In theory, it should. In practice, it is an ideal that's impossible to reach. It's a game, and games are played. Can you have a successful launch without all the preparations? Absolutely! Just less likely.

Again, you shouldn't ask people to upvote your posts. But everybody just knows that's what you want.

Anyway, as I would realize, most launch preparations are too late to do when the launch is tomorrow. Strategically, a successful launch should be just a culmination of months of marketing.

Hence, I did what I could still do: make a few public posts and talk to several people.

The lesson here is not to think about your launch date from day 1 of the project.

The lesson is that launching your product is just an extension of your marketing efforts overall.

Want to have a great launch? Do great marketing consistently for several months leading up to the launch.

Launch day

The plan was to launch on:

  • Product Hunt
  • Hacker News
  • Reddit

Because Product Hunt has the concept of daily ranking (everybody wants to be the #1 Product of the Day), the first thing I did was craft the PH post, submit it, and add a PH link to

Then I would send a new series of posts on Twitter, Discord, and email.

A few hours later, I'd make a Show HN post and then 8 Reddit posts (to different subreddits) 20-30 minutes apart. Because I prepared most of the texts and media in advance, this process did feel like just pressing a bunch of submit buttons.

That was it. All I had to do was wait and react to comments.

It felt like opening a new store and sitting in an empty space behind the counter, waiting for someone to arrive.

And someone did!


Before getting to the results, think about what expectations you would have about this launch.

My thinking at this point was that, with a tiny audience and lack of marketing before the launch day, the results would mainly be up to Math.random() of the world.

Sure, I tried my best to write the copy, make the landing page, tag lines, and so on. But I couldn't control much beyond that.

So any outcome, including (or especially) having 0 views, was expected.


Product Hunt:

  • Day rank #27
  • 186 unique LP views

Hacker News:

  • 1 upvote
  • 16 unique LP views

Reddit (total for 8 posts):

  • 893 unique LP views

There were also 787 unique LP views with an undefined referrer and a long tail of isolated visits from random places.

Ultimately, it amounted to about 2000 unique LP visits within 48 hours after the launch.

For comparison, my blog post that kicked off my work on Impulse had 20k page views just from Hacker News.

Other effects:

  • 94 -> 180 Github stars
  • 30 -> 39 Discord members

Was this launch a success?

Yes and no.

On the one hand, 2k views and #27 Product of the Day are not what you typically see in articles about launches.

On the other hand, it did get things moving. page view graph page view graph's typical daily traffic grew from <10 to about 50.

One week after the launch, Impulse got featured in, which generated 2646 page views, more than from launching, but I doubt that Impulse would have been spotted without the launch.

As for the actual users, several new people came to Discord and Github with questions and issues, which I tried my best to resolve. A few people left positive feedback about their experience too.

I still don't know how many people use it consistently, though.

Lessons learned

Ultimately, I'm not happy or sad about this launch because I think I set the right expectations. It did give Impulse a boost, but it's just one drop in the sea of marketing that needs to be done to take it to the next level.

Several things I'd do differently:

  1. Reach out to more people privately and tell them about the launch.
  2. Maybe reach out to all stargazers with public email, but I'm still 50/50 on whether or not it's spamming.
  3. Launch on more websites. Especially since Impulse is 100% open-source. There are many more places it could have been featured (and still can, only independently from the launch).
  4. Think about the launch day one month prior to it instead of several days.

"There are no silver bullets, only lead ones." – Ben Horowitz

Anyway, the journey is far from over. Impulse is definitely entering a new stage, and I'm excited to learn what it means.

Stay tuned!

And, you know, why not give Impulse a star?

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

Other articles: