A Small EC2 Instance Can Handle HN Front Page
Mo Bitar Mar 15, 2017
Try asking “how many page hits can a typical server setup handle?” on StackOverflow. Go ahead. I’ll wait right here. If you get an answer that doesn’t say “wildly depends on your setup,” take a screenshot of it and cherish it for eternity.
For those of us building web apps without extensive experience managing production servers, it is all too common to have existential thoughts like “what if I build this AMAZING product that gets SO MUCH attention that the server crashes from all the OVERWHELMING enthusiasm and support?!”
Unfortunately, such enthusiasm is rarely coupled with actual reality. Several years ago, during my first such experience building a product I really cared about, I had these existential thoughts and figured others might have too. I emailed Marco Arment asking how he handled existential stress, and his reply was basically “most products never make it to the point where they need to worry about these things.” Well, THANKS MARCO. That makes me feel a lot better.
He was right of course and that product never grew beyond a hundred users. Since then, I’ve tried not to take any product launch too seriously, since in most cases my apps never grew beyond a hundred users. So it was no different with Standard Notes, a cross-platform notes app with a privacy and longevity focus. I built it small and released it quietly. Whereas with previous launches my first (and only) marketing attempts would be immediately posting to Product Hunt and Hacker News, I was determined to grow Standard Notes organically. I had begun to realize that PH and HN were better used as “steroids” to optimize growth rather than nurture it. You wouldn’t want to take steroids immediately on your first day of working out — there’s a lot of natural progress to be made easily that are vital in getting to know yourself and your product. Perhaps you would begin taking steroids once you’ve achieved all the natural growth you could manage and are now looking for an “edge”.
Besides, before accelerators like Product Hunt ever existed, millions of companies and products have found ways to gain success and notoriety — why is it that my only marketing strategy is “I’ll post it to HN!” And then what? Most likely, it won’t get the attention I thought it would, and my enthusiasm for the product quickly diminishes.
No more. I wasn’t going to keep doing the same thing and expecting different results. I cared too much about this new product to let a random ranking algorithm determine my fate. I was to attempt to grow this company using every strategy BUT submitting it to Product Hunt or Hacker News.
That got me to around five hundred users. The rate of growth was perfect. Nice, slow, organic, with just enough time to fix early issues and keep up with support tickets.
Oh. Yeah so remember when I mentioned I tried not to prematurely optimize server setups due to realistic expectations of visibility? SHIT.
I was running a small EC2 instance with an 8gb volume attached. 1 vCPU and 2GB memory. That’s it. No load balancers. No elastic beanstalk or auto scaling. No “kubernetes cluster”. Nope. Just a tiny little server meant to entertain a thousand guests.
I was stunned at the results. Throughout a barrage of what would in cumulative turn out to be over 120,000 visits and thousands of simultaneous requests, the server did not so much as stutter. The sites loaded as fast as ever, and note syncing requests completed almost instantaneously (these are requests that happen more or less every time a user types a letter in a note).
I cannot describe to you the elation and joy I felt as my fears of the server crashing abated. Through the first hour of being on the front page, my heart was pounding dangerously more than it had ever before. My hands were vibrating as I was attempting to respond to hundreds of comments and emails and tweets. At some point, seeing the server so confidently handle traffic, I let go and began having faith: this was the small server that could.
As for the aftermath, it was bittersweet: on the one hand, I was grateful for the influx of new users and visibility. On the other hand, I knew it was only downhill from here. I’ve experienced these sort of rushes before, and I know the depression that can follow from being on top one day to being a nobody the other. The constant influx of pull requests and praise subsisted over a small period until it was back to soloing. I braced myself, and it was surely a long couple weeks.
After that, various articles and products made it to the front page that attracted more users to the site. Standard Notes is now at a good place where the amount of daily new users is on par with what would constitute organic growth. It allows me to focus on the needs of the currently addressable user base, and make sure I solve their problems before growing out to the next stage.
If you’re creating a new product that you care about, I recommend not giving it steroids and posting it to Product Hunt, Reddit, or Hacker News on Day 1. Instead, get to know your product slowly and organically. Nurture a small user base and only seek growth once you’re confident you’ve addressed their needs. When you’ve pushed the bounds of what’s possible through natural and organic means, you might then begin considering using marketing steroids to accelerate your growth.
Oh, and that small server you’re worried about? You’ll be fine.
For more information about Standard Notes, a free notes app with a focus on privacy, extensibility, and longevity, visit https://standardnotes.org.
Have a similar experience launching products? Reach out on Twitter: @bitario.