The idea for LiveKit came when David and I tried adding real-time video to a side project. There just wasn't an open source, end-to-end stack that made working with WebRTC simple. Since our launch last July, the outpouring of love from builders and amazing projects using LiveKit has been equal parts unexpected and energizing.
From the very first lines of code, though, our progress has been accelerated by both, WebRTC developers and the open source community. A whole week's worth of LiveKit announcements feels incomplete without highlighting developers, projects and contributions enriching the ecosystem.
Pion has become the de facto standard for server-side WebRTC. LiveKit's SFU, also written purely in Go, owes much of its existence to this project. Much like LiveKit, it was initially created to scratch the author's own itch. What makes Pion really special is the community behind it. Sean's inclusive attitude has inspired many more people to be involved with improving and evolving the project. Some recent highlights:
- AV1 support: It's now possible to negotiate AV1 with peers and process AV1 packets. (example)
- Bandwidth estimation/TWCC: A framework for pluggable bandwidth estimation algorithms, as well as an implementation of Google's congestion control in Go. (source)
- Send-side Simulcast Server-side applications can now utilize simulcast to send multiple encodings. (source)
Over the last few months, LiveKit itself has also received generous contributions from the community:
- Universal Egress: Dennis built out WebSocket streaming capability for LiveKit's Egress service. He made it possible to export an audio track to an external service for stream processing. (source)
- LiveKit SFU: Brint was probably the first person to standup a working multi-region deployment of LiveKit and very involved in the development of that feature. Recently, he's made the SFU's node selection algorithm more flexible. (source)
- Unity Web SDK: As one of the first users of LiveKit's Unity Web SDK, Rohan has been instrumental in helping us flesh out requirements. The morning we publicly released it, he sent me a repo he put together to help others get started.
Community Project: PopStage
PopStage is a beautifully-designed tool for crafting and facilitating virtual workshops and trainings. The product experience pairs interactive and dynamic spaces with real-time audio and video to digitally capture the nuances of real-life events.
From my first moments trying it, it was clear how thoughtful Laurent and Grant have been in adapting even subtle rituals of interpersonal communication to a remote context. One of my favorite features is their spatial waiting room, allowing participants to meet, carry on conversations, and enter the main stage when convenient – just like a real conference!
As maintainers of PopSpace, the team are believers in open source and LiveKit was released at a critical juncture in their development timeline. Early prototypes of PopStage used a CPaaS provider for media streaming. Issues arose around observability, cost, security, and DX, motivating the team to take control over their media stack. After evaluating open source options, PopStage chose LiveKit as the only open source, end-to-end WebRTC stack with features superior to even commercial offerings.
We're excited to support and collaborate with the PopStage team as they grow and iterate on their product.
We owe so much to the LiveKit community and it's heartwarming to hear folks tell us this project helped them get over the hurdles of building with WebRTC. We're always stoked to meet and work with people interested in real-time audio and video, so come on over and say 👋!