> We are not opinionated. We integrate, don't dictate. Gitpod is an open platform giving developers full transparency over how Gitpod works and allowing everybody to contribute. Our product design integrates with all stacks giving developers full flexibility. We seek to collaborate and partner with other products/companies that share these values.
> Working in open source is in our DNA and everything we’ve created over the past 10 years was built in the open. For Gitpod to be successful we have to win the hearts and minds of developers. Developers (everybody in our team included) enjoy discovering, installing, fiddling around with, contributing to and talking about open source software. This makes open source in the developer tools world unrivalled as a go to developer strategy in terms of speed, cost effectiveness and level of adoption it drives.
---
Both GitHub Codespaces and Gitpod are _wonderful_ products that solve big problems (https://www.gitpod.io/blog/workshops-as-code) in our industry. I strongly advocate for people to build with portability in mind and to not lock into proprietary solutions. See previous comments by myself on this page for some the possibilities (nix/docker-compose) and how it's possible to share between local, gitpod and codespaces the same source tree. <3
Dumb question, from someone who doesn't use web-based instant environments like these: what are some popular "locally hosted" alternatives?
For reasons of personal taste, I just don't like browser based development (not to mention how resource hungry it can be), and I get antsy when relying on third-party hosted services for day-to-day work. I like to treat my laptop as a fully-integrated, offline-capable *, cheap, almost disposable development environment. If I accidentally destroy my filesystem or whatever - which has happened at least once :) - I want to be able to stand it up again and get to productivity within the day.
I appreciate that hosted services are appealing because they "solve" exactly this problem. But I want a locally hosted solution, thanks.
Is it just a matter of code storage (git repos, backups, whatever) + VMs/containers + IDE? Is everyone cobbling together their own solutions? Are there recognised standard approaches, or are they specific to the orgs within which they evolve?
My personal case is as a solo web developer, but I'd be interested in hearing from individuals and teams of any size.
* Edit: By "offline-capable" I more mean "offline-first". I'm occasionally nomadic, and use my laptop on a long train/plane journey where internet is unreliable or unavailable. Plus I have a hardware off-switch for radios to save battery. I'm also slowly implementing local caches of software installed with apt/pip/yarn/whatever so I can pop-up and tear-down virtual environments without necessarily needing an internet connection. (This is a work in progress.) So I'm not interested in cloud-based environments, but thanks to those who have suggested them.
Personally I run all my software via nix, in a monorepo with a layout similar to google3, that generates/serves docker images via https://github.com/google/nixery, supports x64/m1, local development, codespaces and gitpod.
Some people do everything in local containers, with one container for each project, the same way others do it with a vm on a server[1]
The upside being that you still have little to no "contamination" between projects dependencies, files and configuration, each project being entirely self-contained.
Not sure fully integrated and cheap/disposable go hand in hand. Depends on what type of integration you have.
I have my laptop configured in powersafe profile (battery improvement and lack of annoying fans is a plus) and I get noticeable delays when working within my IDE on certain workflows.
I also from time to time travel and I'm aware of spotty internet.
Nevertheless I'm more and more enamored with the idea of owning cheap Pinebook Pro notebooks and renting a cheap server to run my IDE over VNC.
I can't focus on work while on public transport so that setup might work just fine for me in the future. Spend that time instead reading a book, win-win
I think that GitHub Codespaces are built on this technology. It should allow you (or any of your team mates) to start coding almost instantly, you need to install vscode and docker on your host machine and that's about it.
Rent a server in the cloud, install docker there, point your local docker to this cloud server and your laptop turns into a thin client.
Thanks for this warning. My local environment is an old ThinkPad t420 maxed out at 8.9Gi RAM. I do as much as possible in the terminal. If VS Code won't run well on a Droplet, it's unlikely to be an option for me.
I didn't mention coder because I haven't actually used it, so any comments I make on it wouldn't be based on my experience, and my goal with the article was to give you a realistic view of what its like to use both Github Codespaces and/or Gitpod.
I have to assume that neither of these services has invested in high-end hardware that would help to reduce compile times. If they did have high performance machines, compile time savings would be clearly promoted from landing pages. Fair assumption, right? What kind of solutions are people using for remote dev for this?
Heya! Gitpod deploys Kubernetes nodes with 64gb of ram and 16vCPUs. In additon to this we precompile your application (CI/CD style) so you don't need to wait for compilation when reviewing co-workers work.
Pull up a chair for a moment and consider that in this moment of time you are an open-source maintainer or a team-lead who has to review the pull-requests in the video below. Each browser tab is a brand new development environment, the git branch is automatically cloned, all dependencies are restored and your software has already been compiled.
Good? Now you understand what Gitpod is all about.
The code is still in git and on GitHub, the workspace is ephemeral. You can always clone the repo and work locally. I think the idea isn't to 100% replace all local workflows necessarily but to supplement them and to enable working in situations where you don't have access to a developer workstation otherwise.
Of course if you roll this out to the entire company to replace regular workstations, you probably want something with an SLA. Not sure what Gitpod's answer is, but Microsoft seems to sell Codespaces outside GitHub via Azure and there's probably a story for the enterprise version addressing this need.
It’s great to be able to bang out some code on a tablet or a Chromebook without Linux access.
Being able to resume from anywhere without thinking twice and having to checkpoint the code is also great. Off-loading compilation and editing to the cloud is the future of programming and already done at scale at large companies like google.
I'm not a user, but I have experience with one use-case where I'd imagine they're very useful:
When maintaining an open source project, there's often a little bit of tension between making the development experience more productive for you, the maintainer, and more convenient for new contributors. Using a more complex toolchain might make things nicer for you as someone who works in the codebase every day, but adds overhead to anyone who just wants to make a single contribution related to their own work. I could imagine having a "click here to develop" option would help ease that tension.
This indicates that your code is free to move about and not so stuck in a "walled garden".