tl;dr We’re building Stripe for real-time communications
In 2006, Apple started building webcams into their line of plastic, white MacBooks. Seeing a new opportunity for people to connect over the Internet, I went through YCombinator’s “Summer Founders Program” in 2007 and launched the first website for meeting people online using video chat. You may recall ‘ChatRoulette’ or Sean Parker’s ‘Airtime’ as the most well-known incarnations of this concept.
Back then, if you were building a product that needed realtime audio or video, you had two choices for infrastructure: 1) Flash Media Server or 2) Red5 (TokBox also launched that summer, but as a consumer product). The former was proprietary, inflexible and expensive while the latter was free and open source but difficult to deploy and scale.
I was surprised to learn that fifteen years later, this problem still exists! In the middle of the pandemic, I launched a side project which used drop-in audio rooms to help companies build and maintain culture during the sudden shift to remote work. I built the whole thing atop Agora and when it received more attention than I anticipated, I searched to no avail for an alternative providing equivalent reliability with more control.
While WebRTC provides an open protocol for facilitating peer-to-peer, realtime communication, there is no free, open source, and easy-to-use infrastructure for realtime communication at scale.
That is, until now.
Today, I’m excited to introduce LiveKit to the world. LiveKit is free, open source infrastructure for building and scaling realtime audio and video experiences in your applications. And it’s a critically important time for this to exist. Since the pandemic began and took most of our relationships online, there’s been a Cambrian explosion of developers seeking to add realtime features to their apps or websites.
Inevitably, they discover that realtime is difficult technology to scale beyond the prototype or toy stage. When an application needs to support more than a handful of participants simultaneously watching or listening to each other, a selective forwarding unit (SFU) is used to coordinate and manage streams. Well-capitalized companies readily pay for managed services from Twilio, Agora or Daily, while indie developers are stuck recommending Zoom or Discord.
LiveKit will give every developer the ability to easily forge instant, reliable, realtime connections between ten or ten thousand people. Instead of shoehorning every group interaction into a screen-sharing session on Zoom, these can now be built natively in your application.
For David Zhao and I, this isn’t just an open source project.
It’s an open source product.
As developers, we’ve stood on the shoulders of open source. It’s important for us to give back to the community by building a high-quality platform we, ourselves, would use. You can expect LiveKit to have the same consumer-grade polish of proprietary counterparts. It will be robust, simple to integrate, deploy and scale, and provide detailed documentation with strong customer support. We’re inspired by open source predecessors like Elastic, HashiCorp, and Confluent.
Today, we’re unveiling a slew of repos. Key among them is our SFU, built on top of the excellent Pion project. We also have client SDKs for all the major platforms and detailed documentation on deploying LiveKit to your own cluster. If you just want to kick the tires, our React playground will let you quickly build, run and share interfaces powered by LiveKit APIs.
We also noticed that, in practice, it’s difficult to achieve the theoretical scaling benchmarks some vendors claim, so, we built a load tester to simulate real-world traffic and plan to regularly publish performance readouts.
From here on out, we’re building LiveKit in public and we’ll publish our full roadmap soon. In the near term, we’re focused on fundamental developer needs:
- Session reliability and detailed telemetry
- Large-scale (1000+) room support
- Client SDKs (React Native, Flutter, and Unity/C# in development)
There’s a long list of work to do, and many areas to improve and polish. If you’re a developer that’s passionate about realtime communications or WebRTC, check us out on GitHub.
You can also find us hangin’ on Slack, every day. Drop by and say hello! We can’t wait to learn more about your projects and support you however we can.