After building Dub and Knok together, School Night was the most extensive app my then co-founder and I worked on together. The product idea came straight from our advisor, NYC-based entrepreneur and sports expert John Brennan. He had most of the core idea written down in a document, and we followed it to a tee.
It was the time of ClubHouse’s over-subscribed TestFlight launch with over 10,000 active users. All of Silicon Valley was wasting the first three months of the pandemic away on this app, and it seemed that for a brief moment, serendipity was back on the menu. You ran into people in ClubHouse rooms you hadn’t spoken to in decades, and it became a highly active third-place online. The community was pre-filtered for an interest in emerging tech and new apps. Many founders, builders, and tech journalists frequented the app. Those factors helped make this early version of CH’s community so unique.
We wanted to capitalize on this aspect of CH by making the serendipitous and friend-based approach the core feature of our audio-based app, School Night. School Night was going to be to Discord what Snapchat was to early Instagram: a more hip, low-stakes, fast-paced community. The backroom of the internet, as Peter Sellis called it in one of our calls. You can open the app and start a new room with a tap. Every one of your contacts gets a notification, and they can decide to join the room. The home screen is full of open rooms. Seeing a list of glowing faces and avatars is a compelling argument to join the conversation. Nobody wants to pass up an opportunity to be a part of a group having fun.
SN audio rooms were simple. They were either public or private. Private rooms are like easy hop-on, hop-off group calls where only people approved by the room creator can join. Public rooms can be joined by all your friends and all of your friends’ friends. This two-jump network graph was intended to help with the cold start problem and give SN a unique angle on interaction. Maybe you recognize Bob’s friend Alice through their profile picture. You’ve seen her on Bob’s Instagram photos before, and now she’s in a big room of 10, talking to some people you might also recognize.
It’s a feeling of being at a real-life backyard barbeque where you have the confidence that all the people you see are connected to you somehow, but you might not always know exactly what that connection is. And figuring that part out is very enticing and fun. It keeps you coming back to the app and makes the interaction unique.
That was the plan, and for the most part, it did work. We had a TestFlight launch of only 100 people. Even amongst those few motivated individuals who know what TestFlight is, we saw some regular and habit-based hangouts on the app that proved we were onto something.
Unlike the other failures I’m writing about in this series, School Night was not a product failure. It was a human failure. Once we raised $1M from Alexis Ohanian’s brand new fund 776 (and were, to my knowledge, the second startup to get the investment from that fund after David Dobrik), the company went up in flames.
My then co-founder decided he wanted to be the sole head of the firm and didn’t tolerate anyone else having a say in product decisions. This vision directly contradicted what we had dreamt up for our company a year ago in that Manhattan burger restaurant. But things change, and some people will take advantage of you when you dangle $1M in front of their noses. Maybe that’s the unfortunate lesson for this one.
To my knowledge, my co-founder continued the product once he kicked me out of the company. It never launched, though. They launched a different app, a much simpler image-sharing product, combining photos with audio messages. I believe they didn’t have the technical skills to make the whole thing work. After removing me, he hired an engineer to replace me, but I think this engineer never got School Night to work. Here’s why.
WebRTC is a complex beast. Getting it to work already requires a dozen magic network-engineering incantations, and once you manage to get that far, you still need to scale the thing. I built School Night on Kubernetes because I had just written my Master’s thesis about it a few months earlier making me well-versed in the technology. I quickly learned that running TURN in any managed Kubernetes environment is a big no-no because one TURN server requires about 10,000-20,000 ports to be open so that every client can have one full port to send and receive media streams. That’s where the complexity came from.
WebRTC is made for audio and video streaming, so the whole thing is built like a tank and can handle almost everything if you have the engineers for it. Scaling it for a tiny two-person startup is an unrealistic task, though. In hindsight, it’s an obvious mistake even to try. I love building things in-house and from scratch, but we should’ve gone with a provider like Agora. Agora offers real-time audio services to companies, including, you guessed it, ClubHouse.
In 2020, I was confident that this self-built scaling audio stack would be our moat and enable us to scale to millions of users while paying less than the competition. After figuring out how to build a load-balancing WebSocket proxy that routes people to the correct Janus instance for their room, I did crack the central puzzle piece to make in-house scaling WebRTC work. I never finished it and was at about 85% completion when I got kicked out.
This almost-finished git repository involving Janus, CoTURN, Kubernetes, and Terraform would never have been accessible for anyone to complete, let alone the engineer that my co-founder could convince to join his mission. After all, he had zero experience hiring technical talent. So that’s my theory, and that’s why School Night never saw the light of day.
I wish I could’ve seen it launched. While all this was going on, we were still a full five months ahead of CH’s public launch. My firing was in December 2020, and CH launched in May 2021. I think I could’ve done it. I had almost finished my Terraform script to scale CoTURN outside of Kubernetes and in tandem with the Janus audio room servers, and the load balancer proxy written in Python looked like it could handle the load. It’s a shame we never quite got there. We may never know.
In terms of product-based learning, it’s created a drive in me to build things around serendipity. I think ClubHouse fumbled the bag by focusing its product on tiny podcasts, celebrities, and announcements. I think they found something special, and people got a unique value out of the app.
Maybe the pandemic was the main driver here, and any shitty app could’ve been that village square where people met. It was a strange time, and nobody knew what was going on. Wasting away time while you were supposed to be working and talking to some old school friends to distract you from this big, gloomy world event filled a unique need at an exceptional time.
Summary
Audio is heavily underused in today’s social media, and two reasons might contribute to that. For one, it’s difficult and expensive to build. Secondly, finding the time in your day to sit down and talk to someone can be tricky. You need a quiet and safe space to turn on your microphone and speaker, and you’ll have to commit to speaking to someone for a while instead of scrolling away on TikTok. That’s scary. Sometimes, there’s a magical opportunity to build something new, fun, and helpful in audio, and those moments will always be interesting to me.