Using a Chromebook for web development
I’ve now been using my Chromebook for web development for months, and it’s finally time to explain how I’m doing. I’m still using my Macbook as a primary dev machine, but because of the long battery life and tiny size, the Chromebook is the machine I’m using when outside the office.
Let’s make one thing clear before we start: Chromebook is a client machine. It’s a browser you can carry with you. This means that you can’t setup a web development environment into it nor can you run virtual machines. Everything needs to be somewhere else. I’m using a Digital Ocean droplet to run my dev env and all development happens there. I’m actually using that virtual machine with my Macbook as well, so switching between machines is not a big deal.
Most of the apps we’re using at Evermade are cloud-based anyway, so the browser is enough for most of the stuff I need to do. However, I’m still using some native apps on my Macbook and I had to find browser-based alternatives for those.
In order to use the droplet, you of course need an SSH client. Chrome has a built-in terminal but it is very limited. For example, I wasn’t able to configure SSH keys. I know that it’s somehow possible, but I never managed to get it working. Fortunately, there is a better alternative available: Secure Shell by Google. I’m not sure why, but they ship Chromebooks with crappy clients and offer a better option as a download. Secure Shell what’s expected and supports keys.
This one is more interesting. I’m using Atom on my Mac. There is nothing like that available on Chromebook. The best app I’ve found is Caret; it’s very basic. The biggest problem is that it doesn’t support opening remote files and you’ll need another app for that. I tried SFTP File System but I found it to be a little unreliable. I understand that the connection may drop sometimes, but there wasn’t any indication on those cases and I always ended up wondering why my changes were not applied when I saved files.
Then there is a bunch of cloud-based development environments like Cloud9 or Codeanywhere. I tried tens of those kinds of IDE’s, but I wasn’t able to find anything that suits my needs. I was just looking for something simple. An editor with the ability to edit remote files would be perfect. Most of these tools also provide a full dev env with virtualized server environment, which is pretty nice but too much for me. They also tend to be pretty expensive too.
The best solution I’ve found for me is ICEcoder. It’s a PHP-based app I’ve installed on my Droplet. I can open and edit files directly from my droplet. It’s still somewhat buggy and I’m missing things like powerful keyboard shortcuts and code completion. The ICEcoder developer (yes, it’s a one-man project) is aggressively extending the functionality, but I think it might be a better idea to focus on the pure essentials (code writing, shortcuts, and stability). So when I say “the best solution”, I simply mean the best so far. It’s far from perfect and it’s lagging behind Atom and Sublime. I tried to use ICEcoder for a couple of days on my Mac too but quickly changed back to Atom. It was just slowing down my productivity too much.
I would say that the lack of a proper code editor is right now the biggest bottleneck for web development on Chromebook.
Design & layouts
Although I’m a developer, I sometimes still need to work on images and layouts. For our designers, Photoshop is still the primary tool in which to work and there is nothing to compare to that on Chromebook. There is no way to handle one gig PSD files with my Chromebook. I’ve used SumoPaint to do minor image manipulation, but it’s definitely not powerful enough. For classic site building, the lack of Photoshop might be a showstopper. Hopefully, working with PSDs is becoming less and less important nowadays, so I wouldn’t see this as a huge issue going forward.
With these tools available it’s completely possible to use Chromebook for web development, but it’s still not as powerful as what I’ve got on my Mac. For me, the biggest reason to use Chromebook is ideological. I’m working on a web agency and we’re building websites and apps. I just like the idea of using completely web-based tools to create websites. I also want our company to be 100% cloud-native and using Chromebook is one way to see where we are going.