After completing over a million writes, Etcher exits beta with 1.0 release and new CLI edition

Today, Etcher graduates from beta and reaches a big milestone: an official 1.0.0 release!

Since we first released Etcher as an open source tool for writing images across platforms, it’s grown far beyond our expectations. It’s burned over a million images and we’ve solved hundreds of issues to improve the Etcher experience, particularly for Windows users. This release marks the level of stability we need to build the next generation of image writing features. And as a bonus, we’re also releasing the first official (and still experimental!) version of the long-awaited Etcher CLI.

Wait, how did we get here again?

It all started a few years ago when the balena team was writing a CLI for developers to interact with balena via the terminal. One planned feature was to flash a balena image to a drive and get a device up and running with a single command (this is now the balena quickstart command), allowing developers to easily provision new devices to their fleets. But getting the CLI to quickly flash an image across platforms turned out to be much more challenging than we expected.

The challenge led one of our developers, Juan Cruz Viotti (Juanchi, for short - you may also know him as jviotti), to all but disappear for a couple months as he dug into the problem, which was more complex than we anticipated. He emerged with a rough library that could flash an image to flash media on all major operating systems. The difficulty of solving the problem told us we had addressed a non-trivial need. So we decided to add an Electron GUI on top of the tool and distribute it as an open source side project.

And thus, Etcher was born: a cross-platform, open source, easy-to-use tool for writing images to SD cards and USB sticks.

Fast forward to today, and Etcher has grown far beyond what we initially expected. The project has become Juanchi’s full-time focus, and we’ve brought on a small team to help out (hi, lurch, Shou, and jhermsmeier!). Etcher has completed over one million writes, collected nearly 3,000 stars on GitHub, and made its way into many official installation and getting started guides. It’s become one of the most reliable and, we think, pleasant ways to burn SD cards.

Etcher has also proven to be really valuable for image publishers like the Raspberry Pi Foundation. As Matt Richardson says, "Since its initial beta release, Etcher has quickly become an indispensable tool for our community. It runs beautifully on multiple platforms, has a user-friendly design, and is extremely reliable. Etcher is an excellent choice for our users to get up and running with Raspberry Pi. Etcher's ease-of-use is especially helpful to achieve the aims of our charitable mission and makes an educational impact because it removes barriers for new users who are just getting started."

What’s new in 1.0?

We’ve learned a lot from the feedback of thousands of users as Etcher has grown in popularity, and have made many improvements to the tool since it was first released. We’ve closed over 300 issues on GitHub and made Etcher a much more stable and reliable tool.

A big focus has been improving stability on Windows. Windows has always been the most painful platform for Etcher users and we’ve done a lot to improve the experience. We’ve also fixed lots of minor bugs on OS X and GNU/Linux that add up to make the tool much more reliable. On top of the fixes, we’ve added better error reporting, which enables us to continue fixing bugs as they arise.

As a bonus, we’re also releasing the first version of Etcher’s very own CLI. The Etcher CLI is still rough around the edges, but we’d love for users to try it out and give us feedback. The Etcher CLI provides access to the Etcher writing and validating mechanism from the comfort of your command line. It’s a much smaller download given that it doesn’t rely on the Electron framework, and allows writing scripts around it to perform tasks such as multi-writes. You can download it from the Etcher site.

What’s next?

Etcher 1.0 marks the level of stability and robustness we need to build the next generation of image writing features. This is a jumping off point for us to continue solving the types of problems users encounter when provisioning fleets on balena, and we think the new features will help users with all kinds of images to write, not just balena images.

One of the biggest problems we’re working on solving for future releases is the difficulty in quickly writing multiple SD cards or USB sticks at once. This is a huge challenge when scaling a fleet of devices, for example, when writing each card individually takes a long time. We’re working on features to enable multi-writes, or writing multiple cards simultaneously, and are planning to add support for download streaming, which will enable streaming .img files from the internet straight to the SD card, reducing the time it takes to write a card. And, as always, these features will work across platforms - OS X, Windows, and Linux.

We’re also working on a version of Etcher that can easily run as a standalone balena application on a device such as a Raspberry Pi. This can replace expensive SD card duplicators, further lowering the barriers to writing large batches of SD cards.

Keep an eye out for these improvements and more as we continue to build Etcher. As always, we welcome your feedback and contributions - you can find us on GitHub and Gitter!