Real-time collaboration API.
What is Liveblocks? Why did you build it?
Liveblocks is a set of APIs and guides to help other companies create collaborative applications. Figma and Google Docs offer a really good collaborative experience. You see when people are in the same room as you and any conflicts are solved when somebody is makign edits. You can also work offline and they will deal with the sync. Building all this infrastructure is hard. We’re trying to make it a commodity.
Ten years ago, everyone was building their own smart analytics service in-house, or a login mechanism or something like that, now it's all third party. At Liveblocks, we think the future for collaboration is providing all the building blocks you require to create a good collaboration experience, by offering conflict resolution, commenting and making sure it all runs fast, so that you can focus on your core product.
The starting point for Liveblocks came from our background. We’re from the design industry which was completely blown away by Figma when it launched. Figma represented a huge shift to web based, collaborative tools from tools like Sketch and InVision.
We decided to build the infrastructure ourselves and to see if there's a market for something that delivered the right trade-offs. Not so complex that it would have to support an infinite number of clients, but at the same time, powerful enough to give you the tools to go to an existing application and turn it into a collaborative experience.
How would developers solve this problem before Liveblocks?
If we talk about the collaborative path, you can do this with WebSockets or WebRTC, but it’s not easy to do. It's easy to have a proof of concept where we put a few people using WebSockets in the same room, and it's working, but to make it scale with the correct load balancing, to deal with conflict resolutions and for everything to work, is really complex.
Figma and Google Docs are using different approaches, and there is a lot of literature, as well as Open Source projects, but it is fairly difficult to implement and scale. We realized that it is not as easy as Next.js where you can code and deploy and you don’t have to think about lots of branches etc. There is a big gap between the research and actually releasing a product that is easy to use within the collaboration space.
What does a “day-in-the-life” look like?
I'm pretty lucky because I work with my co-founder Steven Fabre and he can do pretty much everything. He can do front-end development but he’s also good at speaking to customers, investors and even overseeing legal stuff.
I don't have a lot of meetings, so I can focus on the product. I can talk to our customers, and concentrate on creating the best API possible. A normal day is probably two-thirds spent on pure engineering, and the rest is spent brainstorming with Steven and talking to customers.
How are you approaching the API design and documentation?
This is one of the big challenges we face. There are always trade-offs and it's extremely difficult to create a good API. We try to find the right balance between ease of use and being powerful enough to build highly scalable products.
To do so, I try to spend as much time as I can with our customers and potential users to find the right abstractions for the API. When something is a bit complex, but can’t be solved with an API, there is the possibility to solve the problem with guides, examples and documentation. Our goal is to make it as easy as possible to use and look forward to getting more feedback from customers.
What does the team look like?
There’s two of us right now, myself and Steven. We’re planning to hire two engineers soon, with one engineer already starting in September.
How did you first get into software development?
When I was 12 years old, I realised that you could build your own website. I started by learning to code in HTML then C and C++. I learned using a really old French website called “Le site du zero” (“Website for zero”). Unfortunately, it no longer exists.
Even in 2002, the tutorials were good enough that as a 12yr old I could understand everything and build a site. I started by playing with code and loved the puzzle part of code - solving particular problems.
What's the Liveblocks tech stack?
We're using Typescript and Next.js for the product dashboard, documentation and website.
For the backend, we're using AWS and Cloudflare to manage our WebSockets connections. We don't use WebRTC yet but it's something we're considering for some use cases.
What was the most interesting development challenge building Liveblocks?
The scalability of WebSockets is definitely challenging, but the bigger challenge is about designing high quality APIs with the developer experience in mind.
There are some people that are super-technical and want full control of everything, and then there are other people that want something they can build really quickly and aren’t concerned about the technical details. They just want to copy examples.
Finding the balance is really tough. I need to accept that it will never be perfect. When you work in another company, it’s easier to make these compromises, but when it’s your own company it’s hard to accept this reality. There's no perfect API solution.
What's the most interesting tool or tech you're currently playing around with?
Describe your computer hardware setup
My setup is pretty limited. I lost most of my stuff in a fire a year ago, so I’m using an old Macbook Pro from 2015 with a trackpad. I have an ASUS external monitor. In this respect, I’m not too picky about the tool I use. I don’t feel that what’s limiting me is the speed of the keyboard, but more how I approach the bigger picture.
Describe your computer software setup
Browser: Chrome, but it depends on what I’m testing.
IDE: VS Code.
Source control: Git + GitHub.
Describe your desk setup
I work from a small wooden desk that I built myself with some Lego and plants. It’s very minimalist. The one thing I’ve invested in is a Herman Miller chair. I feel it is important to have a good chair, as I spend 10 hrs per day on it.
Daytime or nighttime? Nighttime.
Tea or coffee? Coffee. I drink a lot of coffee!
Silence or music? Music.
What non-tech activities do you like to do?
For the last two years, I’ve started to play chess. I find it fascinating as it’s one of the activities that I can do where I forget about work and disconnect completely.
I also try to workout throughout the day, so I’ll play tennis, squash or go for a long walk.
Find out more
Console is an investor in Liveblocks. We are actively investing in devtools related startups that fit our selection criteria for the newsletter.