Gitpod enters the stage: New IDE for GitHub projects
We first mentioned Gitpod last August. The new concept of this IDE allows you to create individual development environments from relevant GitHub repositories with just one click. Just like Project Theia, the company TypeFox is behind it. Co-founder Sven Efftinge, who is also product manager at Gitpod, introduces the new concept and explains the connection between Theia and Gitpod in an interview with JAXenter.
Gitpod & Eclipse Theia: Online IDEs for GitHub Projects
Creating an individual development environment from relevant GitHub repositories – just one click away? Sounds almost like Sci-Fi, but with Gitpod it’s not a problem. The beta phase is over, the project is officially out. We spoke to Sven Efftinge, Product Manager at Gitpod and co-Lead at Theia, about the projects and how they are connected.
JAXenter: You have just released the project Gitpod, an online service for providing “disposable IDEs” for GitHub projects. What do you mean by that? What exactly does Gitpod do?
Sven Efftinge: Gitpod offers a complete IDE for any GitHub project with the click of a button. The only requirement is a browser. When I want to work on a project as a developer, the first step is usually to create a working development environment before I can finally start programming. This often includes sitting around in front of outdated or incomplete documentation. You spend hours configuring your own system. Not only is it no fun, but it also ensures that many attempts to contribute to a project fail.
With Gitpod, the setup is described in the form of Docker files and started by clicking a button. Depending on where the button is located on GitHub, the project is cloned and the corresponding branch is checked out. If you start from an issue, a new branch is created and linked to the issue. When initiated from pull requests, Gitpod starts in code review mode. Then you can look through the changes in the IDE and add comments – just like on GitHub, but with complete language support and the possibility to execute the changes.
Thanks to the automation of the setup, all developers working on one project always have a working IDE. That means no more “works on my machine” situations, as everyone can work together in ensuring the project has a great developer experience. Since the configuration is checked in and thereby versioned, a bug fix on an old branch no longer poses a problem. Gitpod offers “disposable IDEs” because every time the button is pressed on GitHub, it generates a new workspace. You can use this workspace for a single task and then simply close your browser. Fire and forget. I no longer need to maintain or update my system or synch it manually with the repository. It’s like infrastructure as code, only for IDEs, which is why we call it dev environment as code.
JAXenter: What features does this IDE include?
Sven Efftinge: Every Gitpod workspace runs in its own Linux container based on a project-specific Docker image. Thereby, all Linux CLI tools needed for the certain project are available. As a user interface, the developer gets a complete IDE that runs in the browser. With terminals and a very fast, modern editor (VS code) including tool support for most programming languages, we create a developer experience that is not far from what developers use locally, but without the whole configuration and maintenance effort.
In addition to this, Gitpod also comes with lots of other useful features. For instance, users can invite other users to open a running workspace and identify error sources together. A unique feature is called workspace snapshots. They allow you to save the current state of a workspace in a link, which may then be shared. The link generates a clone of the specific state at the time of the snapshot. This can be extremely helpful when preparing different starting points for a tutorial or simply when you want to help people follow your code examples on Stack Overflow or a blog.
Workspace snapshots are also the basis for the prebuilt workspaces: When you install our app from the GitHub marketplace in a repository, Gitpod builds the project after every project change and then takes a snapshot. Now, whenever someone opens a workspace, the developer will get the completely built project including all dependencies. This means you finally don’t have to watch Maven download the Internet anymore.
JAXenter: How does Gitpod relate to Eclipse Theia, your previous project?
Sven Efftinge: Eclipse Theia is Gitpod’s IDE and accounts for about 50 percent of the total code base. We are developing the project in cooperation with Ericsson, Red Hat and some others, such as Google, who offer Theia as Google Cloud Shell. Theia is strongly based on the excellent VS Code and will soon offer support for VS Code extensions. The other half of Gitpod deals with the provisioning of workspaces and is implemented in Go and TypeScript. Gitpod is also a microservices application and runs on Kubernetes. We are currently running the website Gitpod.io on three clusters at Google (Asia, Europe, and North America). Thereby, we ensure reasonable connection speeds all over the world.
JAXenter: Which advantages does Gitpod offer compared to “classic“ IDEs like Eclipse / IntelliJ / Visual Studio and web IDEs like VS Code, Eclipse Orion or GitHub’s Atom?
Sven Efftinge: Besides Eclipse Orion, that’s the list of established editors (+Sublime, Emacs, Vim). We find VS Code the most balanced of these choices: It’s fast, offers very good language support and doesn’t lay a graphical user interface over everything. Instead, the focus is placed on the command line. That’s exactly the IDE we want to provide for all projects in the browser through one button, in the specific state that I as a developer need in the respective situation. That is Gitpod.
JAXenter: How can I purchase Gitpod? Which pricing models can I choose from?
Sven Efftinge: We offer a free open source option that allows you to work up to 100 hours per month on public GitHub repositories. The standard rate is 17 Euros per month and not only includes 100 hours, but also has the added functionality of opening private projects. For professional developers, we offer the unlimited plan. As the name suggests, there is no time limitation and you can work on all types of repositories. The plan costs 35 Euros per month. It’s also possible to obtain the unlimited option for whole teams, and for students it’s only 8 Euros a month.
JAXenter: What do you have planned for Gitpod in the future?
Sven Efftinge: Our first step is finalizing the support for VS Code extensions. We are also working on optimizing the start-up time. We are full of ideas of how to optimize the user experience and can’t wait to put them to action. Parallel to Gitpod.io we will be releasing a trial version of Gitpod Enterprise in May. You can install Gitpod Enterprise on any desired Kubernetes cluster and connect it to GitHub Enterprise and GitLab installations. We already completed GitLab support in January but decided against implementing the feature in Gitpod.io because GitLab as service isn’t widely used. We are planning to offer GitLab Enterprise in an additional option hosted by us.
JAXenter: Thank you for the interview!