# Set up the development environment
Before starting to develop, you must set up your device. This is what you must
do:

1. [Install Go](https://golang.org/doc/install). On Mac, you can install it
with [Homebrew](https://brew.sh/) by running `brew install go`.
   - This is because the build script uses a Go program to generate the
   manifest.
2. That's it! If you're using a Mac, you're out of luck, because you must
perform some more steps.

## Mac-specific configuration
On a Mac, you must also follow these steps:

TODO(Issue #18): add macOS steps
