How we screwed up our ShowHN launch

2022 September 10

We're building a better search engine for cloud, starting with GCP. We posted our first ShowHN 24 hours ago. We received a stable amount of traffic and briefly reached #1 on the Show HN page.

After looking at server logs to see which of our pages / app routes were being accessed, we noticed people weren't using the feature we were most excited about: the search engine. Or so we thought.

We have an IAM ( identity, acccess management ) aka login system. On the demo landing page, which is linked on ShowHN, there is a CTA (call to action) / link that allows people to login with a demo user. We put it in size 42px font with the message "Proceed to demo". We thought this was straightforward enough.

The logs revealed people requested the demo page's HTML and the style.css (which we are super proud are less than 10kb total). Then there was a beautiful 3MB splash image on the page ( yes, we're aware this blog post has megabytes of images. We wanted to get the message our quick and come back to compressing in a bit). The server logs showed many users requested the style.css and html, but not this image. We mocked out loading the demo page without the image and it turns out the page style became jank.

Going back to the logs, ultimately a 20-30% of people who got on the landing page proceeded through the funnel to something that required a login. However, there was noticeable amount of traffic to the login page where we expect username and password. People weren't supposed to go here.

We have a "search" widget in our top navigation with some sweet CSS JavaScript polish. When people press the 'enter' key,they are redirected to the search results page. When we launched the demo, the search icon was available to all users. If people aren't logged in, they will be redirected to the login page. We thought this would encourage people to login. However, this does not apply in the demo case and only confuses people.

We don't log frontend interaction, and only have visibility into which of our pages people are visiting. However, we saw a good portion of visits being 3xx errors ( which are associated with page redirects). This would be consistent with the theory that people are ignoring the "proceed to demo" link which put in huge font-size and proceeding to search immediately.

We pushed a fix to remove the search icon for people who aren't logged in, so visitors to the demo would click "Proceed to demo" which would log them in as a demo user. There were other options, but this felt like the safest option in terms of our authentication system aswell as breaking the user experience. Finally we removed the 3mb large splash image. The page is now just 7.6KB in network transfer! We hope people try our demo now.

It's relatively easy for us to push changes ( straight to prod, for now ). We od Docker build then push to the container registry. We run this app on CloudRun, Google's container-as-service serverless offering, which pulls from container registry and serves the app We felt safe because CloudRun allows us to rollback to last stable version in seconds, but even before this, traffic is not rolled over to the new build until we verify things aren't broken. For all the crap we give GCP, things runs great once you can get it to run. The problem is getting to that stage. We want to help others get there.

The key takeaway is that if you tell people you are building a search engine for X, they will immediately try the search icon and ignore the "Proceed to demo" text in size 42px font. It's not there fault. It's a lesson for us. Also, megabytes matter. This is exactly why we are building this product! We are tired of the 30mb+ of GCP's web console, 90+ navigation items, and dozens of UWe patterns being introduced every other month. Also, search doesn't work in an intuitive way we expect. But yeah, check it out! Proceed to demo :)