Lessons from my first site going viral
Adding finishing touches, and deploying my code to my production server I did a quick spot check to make sure everything was in place, then submitted the link to heyfromthefuture.com to my personal Facebook page and ProductHunt.
The concept, which allows people to share advice based on things they wish they knew at particular ages, only works if there’s advice to share, so I spent the previous few days asking close friends and family to help populate the site. I clicked share on both sites, and after about 30 minutes returned to my computer. The only upvote on my ProductHunt page was my own, and the only likes on Facebook were from a close friend and my mother. Disappointed in the effort I put in and the response I received, I closed my laptop, went to bed, woke up the next morning and went to work.
At the end of the next day while riding the streetcar home, I opened my Facebook to notice I had a few more likes and shares than I anticipated. Not a lot by any means, but others were finding the site useful, sharing it, signing up, and submitting advice. When I got home, I logged on to ProductHunt to see if I had made any traction. To my surprise I was greeted with a ton of notifications in the top bar, and my site on the home page in the number two spot.
Grateful that I put a Google Analytics tracking tag in during my finishing touches, I logged into the tracking site and discovered that my site had been viewed over 20,000 times that day, with about 500 real time visitors on the site at any given time. Then reality set in:
I wasn’t ready to publish yet.
I could suddenly think of 100 things I wanted to do, but I had already pulled the trigger, the site was live, and now changing anything became much more work than anticipated.
The database was filling with users and messages to others, why didn’t I think about automated backups until this point. Sure, the entire machine is backed-up, and therefore the database, but the data engineer in me knows there should be a cross-cloud regular occurring database backup. Not the most difficult to implement, but now everything becomes much more stressful because it’s live data.
Next came my worries about the user authentication flow. In order to submit advice, or upvote the best advice, a user needs to register. I already had hundreds of users, but each of them had to fill out an arduous registration form none-too-popular in the common era. Why didn’t I implement single-sign-on (SSO)? Why is Facebook’s SSO so difficult to work with? Why does Google require days to approve an app for login registration. I could have had so many more registered users if I had implemented SSO from the beginning — many friends told me that was the reason they didn’t register.
My mind next moved from launch to growth. I had demonstrated a product that is useful to others, but how to I get a regular contributing user base. I hadn’t thought about this before hand; I got lost in the idea of the project. Social media traffic is fantastic for launch but it’s not sustainable, even as I write this the site only gets around 500 views a day. I should have had a plan for better search engine optimization sooner. Even searching the site now brings the ProductHunt entry before the actual HeyFromTheFuture entry.
Traffic was also a concern. I had deployed this site on a very minimal virtual machine, and with other services running concurrently, I needed to assign more memory before a crash. A relatively easy fix, but something I should have anticipated beforehand.
Truthfully, I don’t think I will ever be truly ready to launch a website. There’s always something that can be fixed, and always something that can be improved. It’s important to get the minimum viable product (MVP) out there so it can be tested by the world. That being said, there are a few things that I’m going to do differently before launching my next big thing.