Theia 1.0 - Finally a Good Browser IDE
Tags: productivity, vscode, opensource, devops
Published: 2020-03-31 08:49:03

We are excited to announce Version 1.0 of Eclipse Theia, the vendor-neutral open-source IDE platform that runs in browsers and on desktops.

# Single Source for Browser and Desktop

[Theia](https://theia-ide.org) is a unique IDE platform that supports building desktop and web-based IDEs from the same codebase. Therefore, as an adopter, you don't need to make an upfront decision about whether your new developer product should run in the cloud, on the desktop, or both.

# Not Your Parents’ Browser IDE

Theia is the first browser-based IDE platform that supports all the latest programming language smartness in a depth similar to your local IDE. 

First-generation online IDEs such as Cloud9 have paved the way towards browser-based development. However, keeping up with the plethora of programming languages and frameworks that modern desktop IDEs support has always been an uphill battle. This can be solved by growing a massive community of extension developers, or hiring an army of developers like JetBrains, but both are extremely hard to achieve and sustain in the long run.

Theia solves this problem differently by leveraging the largest and most active IDE-extension community on the planet.

# Theia Runs VS Code Extensions

The VS Code team has done a great job of creating a protocol-based IDE extension model that runs all extensions in a light-weight sandbox process. Theia natively supports the [VS Code extension protocol](https://github.com/microsoft/vscode/blob/master/src/vs/vscode.d.ts). This means you can install any of the 16,000+ existing extensions developed by the open-source community in Theia.

Adding this level of VS code extension support to Theia has been a lot of work and took us two years. But leveraging this flourishing community just made so much sense that we knew it was worth it.

Unfortunately, Microsoft prohibits non-Visual Studio products from installing any binaries downloaded from their marketplace (see [terms](https://cdn.vsassets.io/v/M146_20190123.39/_content/Microsoft-Visual-Studio-Marketplace-Terms-of-Use.pdf)). 

Considering that most extensions are open-source and not developed by Microsoft, that’s a pretty sad state of affairs. 

This limitation not only affects Theia and all of its downstream adopters, but also releases based on the open-source code of VS Code, such as [VS Codium](https://github.com/VSCodium/vscodium). Fortunately, we have a solution.

# Open VSX

[Open VSX](https://github.com/eclipse/openvsx) is an open-source implementation of a VS Code extension registry that we have developed under the umbrella of the Eclipse Foundation. A publicly hosted version of it is available at [open-vsx.org](https://open-vsx.org) and is currently in beta. With Open VSX we want to create a public registry for open-source VS Code extensions, accessible for everyone. We also want to enable organizations to host their own registries within their private networks - a long [demanded feature](https://github.com/microsoft/vscode/issues/21839).

We encourage VS Code extension developers to push their extensions to Open VSX in addition to Microsoft's marketplace.

# Who is Using Theia?

Theia is used by TypeFox, Ericsson, RedHat, IBM and in many other organisations across the industry: 
 - Theia powers [Gitpod](https://www.gitpod.io)'s [continuous development environments](https://dev.to/svenefftinge/continuous-dev-environments-the-next-step-in-devops-4ab7). You can [try opening Theia in Theia](https://gitpod.io/#https://github.com/eclipse-theia/theia).
 - Google runs Theia as the editor in the [Google Cloud Shell](https://cloud.google.com/shell/docs/viewing-and-editing-files), 
 - Arduino's new [Pro IDE](https://www.arduino.cc/pro/arduino-pro-ide) is based on Theia , 
 - SAP have [replaced their Web IDE](https://blogs.sap.com/2019/10/15/showcasing-sap-business-application-studio-the-next-generation-of-sap-web-ide/) with Theia , 
 - Arm's new [mbed Studio](https://os.mbed.com/studio/) is based on Theia,
 - D-Wave Systems have adopted Gitpod which allows anyone to [do quantum computing with Theia](https://support.dwavesys.com/hc/en-us/articles/360043804213-Introducing-Leap-2), and
 - the Eclipse Che team has [replaced](https://che.eclipse.org/eclipse-che-7-extending-developer-workspaces-to-run-vs-code-extensions-in-the-cloud-cbe97e11d4d4) their previous GWT-based IDE with Theia.

> Ericsson deserves an extra mention here, as they have initiated the project together with us from TypeFox and have been fully supporting the effort from the first day.

So why does Theia see so much adoption? 

# Flexible Architecture

We have designed Theia, so that adopters can change it in very fine-grained ways without the need to patch or fork the core project. Leveraging dependency injection and a modularization that splits the whole application into individual npm packages provides the degree of freedom a product developer needs.

Good examples for highly customized products are Arduino’s Pro IDE and Arm’s Mbed Studio.

![arm's Mbed Studio](https://dev-to-uploads.s3.amazonaws.com/i/brvhco1vh45t2lr47i9a.png)

# Vendor-Neutral Open Source

While the technical flexibility helps adopters to build the tool they need, Theia’s vendor-neutral governance at a well-established Open-Source foundation is equally important. The [Eclipse Foundation](https://www.eclipse.org/org/documents/) provides adopters with the assurance that the project doesn't go away and evolves in a well-documented and business-friendly manner.

# Community

Most of our adopters are also regular contributors to the project. TypeFox, Ericsson, and RedHat even have dedicated teams working on Theia full-time. Today Theia counts 1k forks, [over 7,3k stars](https://star-history.t9t.io/#eclipse-theia/theia) and the [community forum](https://spectrum.chat/theia) is growing every day.

![Star growth on GitHub](https://dev-to-uploads.s3.amazonaws.com/i/myrmc2h73pwwfjablrim.png)

# Contributions Made Easy

The Theia project uses Gitpod to provide contributors and maintainers with a ready-to-code development environment. Creating a Pull Request on a software project has never been so easy — you can get a fully prebuilt dev environment within seconds, and you don't need to clutter your local machine as everything runs in a browser tab. The same works for code reviews, when you open a Gitpod workspace from a Pull Request.

Lowering the friction for contributors has a tremendous impact as we are waking up to high-quality pull requests from new contributors daily. (By the way, you can find other such contributor-friendly open-source projects at [contribute.dev](https://contribute.dev).)

# Summary

With Theia, we finally have a no-compromise, browser-based developer experience without the typical short-comings of first-generation browser IDEs. Theia runs on any modern device such as tablets, Chromebooks, and, of course, your powerful developer machines.

We are releasing Version 1.0 to tell the world that Theia is ready for prime time. As outlined above, it has already been adopted by many, and we are looking forward to seeing what you will build with Theia.

# Acknowledgments

A 1.0 release is the perfect opportunity for a shout-out to some of the key people who have helped to make Theia what it is.
 - Anton Kosyakov architected and authored huge parts of Theia and is the go-to person for anyone in the community. His dedication ensures that Theia stays technically healthy and sane. Thank you!
 - Marc Dumais co-leads the project with me and is taking care of a lot of the formalities. I'm especially thankful for his consistency in getting all the paperwork done that was required to move the project to the Eclipse Foundation.
 - Dominique Toupin kicked off the project with me when he was still working at Ericsson. He believed in Theia from the first second, and without his support, it wouldn't exist.

There are, of course, many more, who have put their passion and time in getting Theia to where it is today. Instead of naming everyone here, I am pointing to the [top 100 contributors](https://github.com/eclipse-theia/theia/graphs/contributors) list on GitHub.

Thank you all and keep up the awesome work!