37
34 Comments

Yesterdays launch was a MESS. Don't do this.

Yesterday I launched https://jsonmaster.com on Producthunt and some other places. I had it set up to notify me on discord whenever a purchase came through.

As the day went on, I was watching google analytics and seeing that the checkout button was getting clicked, but no one was actually making it to the "order success" page. Wtf? I go to check stripe and sure enough, a bunch of sales were made.

Shit.

With some more investigation, I discovered was a bug in the backend preventing orders from being delivered. People were paying but getting nothing in return. It would just load forever.

Shit shit shit shit.

Now I'm in hardcore full-stress debug mode, frantically sending out emails to buyers explaining the situation, manually delivering the product via email.

Another order comes in... SHIiiiiT.
... I quickly push a commit to disable the checkout button on the website.

40 minutes later I figure out what's happening in the backend.
Once the backend was repaired, I sent out a wave of emails saying that everything was good to go.

Pheww. I'm done.

An email comes in:
Re: JSON Master is fixed!
"Hello, I'm getting an error when I try to activate my extension... its loading forever."

shi tshi tshit shit shtishtsiiwe3hfr9whrfwsfsfdvcswefgv

More hardcore debugging, another wave of emails, apologies, refunds.

Turns out, one of the scripts that automatically .zipped the chrome extension package was corrupting the release. The chrome extension worked perfect in dev mode but was throwing errors in production.

This realllly sucks because when you publish an update to your extension on the chrome web store, it has to be manually reviewed by the web store team. In other words, everyone who bought had to wait another day on top of this.

Fast forward to this morning, the updates were approved, I finally pushed the last commit, and sent out the final wave of emails.

2 lessons:

A) If you screw up, be super transparent and high-communication with customers. Over-communication meant everyone was very understanding and patient. (also helps that they were fellow devs & could relate)

B) TEST EVERYTHING MULTIPLE TIMES BEFORE YOU LAUNCH

/u/sonium:
C) Start launch with low volume to make sure everything is going smoothly and then ramp up

  1. 21

    At least you were getting sales during the launch! That's something to be grateful for!

    1. 1

      Yes, the validation is nice!

  2. 4

    Cool product!

    You might want to make it take less clicks to buy it. If I click "I want it" it scrolls me down to "Supercharge your workflow" which doesn't have anything about buying it. Then I have to scroll down more to find the other buttons that say "Get it now", which then takes me to a page explaining the price and stuff, where I then again have to click a button saying "Checkout" and then finally I can add my credit card info.

    In my opinion all the buttons on the landing page should take you directly to the pricing page, or even the checkout page, because I already understood what your product does from the hero. You could keep the info that is on the pricing page in the left half of the checkout page and get the same info delivered with fewer pages.

    1. 2

      Yeah I think you’re right, this is good advice. Planning to implement a lot of that

  3. 4

    What is the reason you launched on 'ProductHunt AND a COUPLE of of other places' at once?

    If the launch would have happened from low to high volume channels the stress would seem avoidable...

    1. 2

      Hmm yeah 😁
      Gonna add this to the lessons list

      1. 1

        May I just add a question to this... what are the "other places"? Thanks and congrats on getting sales off the launch!

    2. 1

      This comment was deleted 4 years ago.

  4. 4

    That sounds like a success story. Congrats! And yeah, discrepancies between dev and prod suck. That's why I always test in production only - just kidding.

  5. 2

    Wow, congrats on pulling through even though all that happened though!

  6. 2

    at least you had sales!

    Consider adding an error monitoring tool. it's one of those things that makes you think "I should have set that up before" after shit happened. I use sentry.io and it works really well. otherwise, there's honeybadger.

  7. 2

    I like the landing page. Pretty clear and to the point. I could definitely relate to the pain of seeing raw JSON. Every time I get a JSON response back, I have to paste it in my IDE and run prettify. So your chrome extension helps me save that step.

    Nice work!

  8. 2

    Very stressful but it sounds like you have your head on straight and a reliable customer base.

    Good work!

  9. 2

    the lessons learnt are very helpful.

  10. 2

    I'm working on a Chrome extension myself (https://markr.app) - I semi-relate to what you must have experienced. I had a similar issue where the extension was working fine in dev environment but once shipped it was breaking. Luckily, my extension still in under development & hence it only happened to beta users.

    Since then I'm using two profiles on Chrome to test both the version. First profile is used for development and second profile I use to test "zipped + before submitting to webstore"

    1. 1

      Nice, I will have to setup a process like this

  11. 2

    At least it makes for a great story :) Congrats on the launch. At least it was exciting!

    This is why I prefer to do a "soft" launch first. Maybe give it to a friend and let them go through the purchase process. It's always easier said than done but at least you've got another experience under your belt!

    1. 1

      Thanks, yeah I was a bit overconfident. This is much better

  12. 2

    Congrats on what, at the end of the day, is a successful launch!

    "Free updates forever." that's a big call tho

    1. 1

      I also have the "free updates forever" on my product page. Do you think this makes the buyers less likely to purchase? Isn't it a positive thing?

      1. 1

        My thought was, it’s sort of an easy thing to add in case one of the objections of the customer is “what if I buy v1 but then v2 comes out in a month?” What makes you say they might be less likely to purchase?

    2. 1

      Thanks man! Yeah the project has a somewhat limited scope in terms of future updates, at a certain point updates will no longer be useful

      1. 1

        "What makes you say they might be less likely to purchase?" - I am not saying that, in fact, it probably makes people more likely to buy.

        ...and I am sure that is not legally binding or anything. But from a user point of view, what if you decided to move on and do something else and this thing stops working, then the customer is left with an unfilled promise.

        I might be overthinking that, I just wouldn't say it myself is all :)

        1. 1

          I see, its a good point. Will have to think more on this

  13. 2

    Damn, every devs worst nightmare. Can become a burden to test in prod, you think to yourself "I only changed this", and never do it.

      1. 1

        Quick q did you test payments in prod? I've gone via Stripe Atlas and am getting my bank account in the next week hopefully. Have tested payments/failures with the test keys but... doing it in production I'm going to spend $9.99 per test. More if I want to test multiple seats

        1. 1

          I did after stuff was already going bad. I just refunded myself afterwards through the stripe dashboard

  14. 2

    Lemme guess, you're using the vue-cli-browser-extension plugin?

    1. 1

      Yep! The build-zip script was causing the issue. Safer to manually zip dist/

  15. 1

    Hey Mike, thanks for sharing this story!
    Highly agree with you that we need to test everything before launch, and start with lower volume :-)

  16. 1

    There was a point in the past when I was having major anxiety about bugs in our product that had only been in production for a couple of weeks; I thought the world was ending because some customers were getting error pages, and I didn't want to leave a bad impression on them of our product and brand.

    A co-worker (the founder of the company) told me, "If we end up being successful, 99% of our customers still haven't even heard of us yet." That helped put my mind at ease, and it's something that I've reflected on pretty frequently since.

    Congrats on your launch! Sounds to me like getting a bunch of sales that aren't delivered due to a couple of bugs is a MUCH better outcome than having a bug-free sales process that doesn't generate any revenue :)

    1. 1

      Also theres a .codes TLD, you should grab the domain if its available :)

    2. 1

      Totally agree Jordin, thanks!

  17. 3

    This comment was deleted 9 months ago.

Trending on Indie Hackers
I've built a 2300$ a month SaaS out of a simple problem. 19 comments I'm building the MCU of SaaS 💎 12 comments 🔥 Roast My Landing Page 10 comments Where can I buy newsletter ad promos? 8 comments Key takeaways growing MRR from $6.5k to $20k for my design studio 6 comments YouTube? How to start 5 comments