We started our dev tools journey by writing our code editor from scratch. The remote development feature was a key feature for us, so we built the feature in Lapce from the very beginning, shaping the entire architecture of the editor around it. We had a bit of a detour on developing Lapce and wrote our own GUI toolkit Floem because there were no good ones in Rust that suited our needs.
Then we started to have this need to manage the remote development environments. Because Lapce and Floem are cross platform applications, we used Lapce’s remote development feature to develop it on different operating systems, from the same editor without the need to switch machines. But still, the actual remote development environments, i.e. the different remote systems that Lapce connects to, need to be managed, and ideally we’d like a system which can manage them and spin new environments, so that our contributors can easily debug or test the cross platform features if needed.
We looked at existing solutions but can't find one that matches our needs. Some of them are very complicated to install and maintain, and as DevOps engineer, I really appreciate self hosted systems to be easy to install and understand. So the idea came into mind, why not create a new solution ourselves, that embodies simplicity, but without compromising on functionality and extensibility?
The Dev Environment
The Code Editor
The GUI Toolkit