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 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. 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).
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. Fortunately, we have a solution.
Open VSX
Open VSX 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 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.
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's continuous development environments. You can try opening Theia in Theia.
- Google runs Theia as the editor in the Google Cloud Shell,
- Arduino's new Pro IDE is based on Theia ,
- SAP have replaced their Web IDE with Theia ,
- Arm's new mbed Studio is based on Theia,
- D-Wave Systems have adopted Gitpod which allows anyone to do quantum computing with Theia, and
- the Eclipse Che team has replaced 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.
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 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 and the community forum is growing every day.
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.)
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 list on GitHub.
Thank you all and keep up the awesome work!
Latest comments (45)
Is gitpod.io build on Theia?
What is the link to upload a VSX addon to the open vs site?
My name is Adrian Ndlovu, I am a university student in South Africa doing research on Eclipse Theia plugins and I can only find information on how to implement your own plugin but I cannot get information on already plugins already used and established that I can research on. Please help me with suggestions on how to go about this and possibly references to where I may be able to get help.
@Anton Kosyakov,
Amazing works. Thanks!
I'm from eclipse EMF for a mouse heavy workflow modelling tool.
Two years ago, we developed a cloud-native solution from the stretch. It's a SPA IDE which can do exactly the same graphics modelling out of eclipse modelling framework, and we can do cloud execution. Now we are looking for an interactive debug solution for our project.
Shall we covert our whole project as a Theia plugin to leverage Theia or we can leverage only the coding and extension system of Theia? Previously, I'm looking for a solution based on code mirror and LSP, DAP.
Thanks in advance!
It should not be hard to leverage LSP and DAP. Theia is not opinionated about frontend framework. The basic UI element is a widget which is an HTML element with lifecycle hooks. If your current solution is built with JS tech then it should be possible to embed them in Theia widgets. If no then usually backend can be reused but frontend should be converted.
Here is a presentation from last year TheiaCon about how SAP converted their solution: youtube.com/watch?v=Rj35nCxw_9U You can see there are many approaches.
Here is on Theia Widget lifecycle: youtube.com/watch?v=T1HDIy7LfFg
Too bad it is based on electron... which means huge memory and CPU consumption, like Slack or Microsoft Teams.
OK, it divides your development workload; but it multiplies our energy guzzling.
And I hate hearing my PC fans rotating like mad.
Use browser version, it does not have any electron dependencies. Or better use Gitpod :)
Theia is an extensible IDE framework with cloud-first mindset not a patch to electron and VS Code source code to run it in a browser as code server. Theia does provide similar UX and compatible with VS Code extensions but relies on stable components and protocols like Monaco, LSP, DAP and vscode extension api. Besides it is vendor neutral and allow to build white labeled products like Gitpod, ARM Mbed Studio or Arduino Pro IDE.
This is nice!
Some years ago I was creating something similar, an IDE that supported extensions from multiple other IDEs and editors, but I soon abandoned the project because it was too much work to be doing it alone and for free.
Keep it up!
In GitPod Theia is really pleasant to use. Looking forward testing it more.
"leveraging the largest and most active IDE-extension community on the planet"
By creating your own IDE-extension community?
I mean, the new extension registry won't mirror what's in Microsofts registry and require every extension creator to explicitly load things to the other one, or am I mistaken here?
As explained in the post, Microsoft disallows non Visual Studio products to use their marketplace. We are not creating a new community but rather an additional registry for the same community that allows access from anyone (including e.g. VSCodium).
I understand that.
It just seems to me that "creating a new marketplace and hoping extension creators will use it" is at odds with "leveraging the largest and most active IDE-extension community on the planet".
Don't get me wrong, I think your new open registry sounds like an awesome idea and I hope it works, but it seems like a very risky assumption to me.
RedHat, MS Azure, Elm, VMware, Pivotal claimed namespaces last week and started publishing: github.com/eclipse/open-vsx.org/is...
We are seeding the registry as well: github.com/open-vsx/publish-extens...
Spreading the word would be helpful.
cool, I will do :)
I'm 6 hours into my Theia studies, and so far: I'm completely blown-away by the potential of an IDE framework as compared to an IDE proper.
I'm trying very hard to slow myself down, but it's not working.
I envision a trillion things that should have been, but weren't.
I feel the same when first time I hear about Theia. Same thing to JetBrains Opensource Platform and NetBeans platform.