The fact that VSCode began as a web app, then became a desktop app, then became a web app again and then even got remote (ssh) functionality is a testament of how adaptive the codebase is.
It's adaptive because they use dependency injection really well. You can replace, mix & match any part of VSCode, while keeping the main functionality (
github.com/codingame/monaco-… is a testament to this).
That was also why it was so easy to integrate VSCode with CodeSandbox and make it work in the browser. You can replace services like the FileService one by one with browser compatible versions.
I'm also impressed with its performance. They're doing everything imperatively, which is a pain, but it does make it easier to ensure that you never do more DOM operations than you should. Because imperative UI is a pain, they've created a lot of primitives like virtualized lists, quickinput, etc with a good API to easily compose UIs
Finally, the editor feels fast even with many extensions, because they run extensions in a separate thread. How does UI work then? The extension tells VSCode over the wire using the same primitives how UI should look, and VSCode renders those elements in a performant, consistent and accessible way.
This is why Atom started to feel slower than VSCode after a while. It was not Atom that was slowing down, it was the extensions taking CPU from the main thread.