Back to all posts


Introducing Lapdev


Lu 2024-03-23

Today we're announcing the open source and initial beta release v0.1.0 for Lapdev. You can read how to get started here, or check out the source code on GitHub.

What is Lapdev

Lapdev is a self hosted application that spins up remote development environments on your own servers or clouds.

If you have VSCode Remote Development in your workflow, you probably already know the benefits of remote development, with which you can unleash the full power of the remote machine, while still feeling as if you're developing "locally". Or you may have heard of or tried Github Codespaces, on which you can directly open a "workspace" from the GitHub repository with a simple one click, and you can start to code instantly, with all the development environment preconfigured for you.

And Lapdev tries to bring the same experience to you with a self hosted approach for you to deploy to your own servers or cloud. Lapdev uses the same underlying standard Devcontainer that VSCode and Codespaces use, so you can seamlessly open your repository on Lapdev if you have Devcontainer configured already.

Open Source

Lapdev's core is open sourced under AGPL-3.0, and with selected features gated under an Enterprise License. Before Lapdev, we've also developed two other open source projects, one code editor project Lapce, and a native UI toolkit Floem. So it's only logical for us to make Lapdev open source as well. But to sustain the development efforts of all our open source projects, we've also introduced Enterprise License to be able to bring in direct revenue to support all of them.

Why creating Lapdev

You might want to ask why reinventing the wheel while there are already a few solutions out there, and they cover all the spectrum of cloud offerings and self hosted solutions, open source and proprietary.

Firstly, cloud offerings out there are rather expensive compared to normal Public Cloud prices. It would be good to have a self hosted solution where we could host on a Cloud, or bare metal providers like Hetzner, to save costs and potentially have a better performance (You could shop around to pick the right CPU for your heavy compiling work, yeah Rust you know).

We also looked at the existing self hosted solutions out there, and they are all so complicated to run (I mean honestly, I really don't want to manage a k8s cluster for the purpose of remote dev boxes, where mostly it's one developer connecting to a box, which is not even close to the production scale).

It only left us no choice (don't we all :)) but to create Lapdev, and the main focus is to provide simplicity for the people who are going to install and manage it, and make it flexible enough to support use cases beyond containers. When we make technical decisions, we always favour implementing something within Lapdev rather than depending on an external dependency, as the more external dependencies we have, the more burden we put on the end users. To that extent, the only external dependencies Lapdev needs are Postgres and Podman.

Wrap Up

We've got nothing else to say but to ask you to try Lapdev out. And I hope you enjoy playing with Lapdev if you do. Please join our Discord community to ask questions, make comments or tell us it's still a bit tricky to get Lapdev up running.