A project that only runs on your machine is not finished, and the distance between the two is smaller than it looks. Deploying is a build step, a run step, a name that points at the right address, and a set of values you keep out of your code. None of it is conceptually hard. All of it is unfamiliar the first time, and the errors are unhelpful because they assume you already know the vocabulary.

This chapter gives you that vocabulary and the handful of decisions that come with it: where to host and what it will cost you, how a domain finds your server, how to keep test data away from real users, and how to get back to the previous version quickly when a deploy goes badly. Deploy something empty early. The first deploy of a finished project is where a week of surprises hides.

  1. What deploying actually means
  2. Hosting, and what it costs
  3. Domains and DNS
  4. Your machine, staging, production
  5. Secrets and environment variables
  6. Deploying, and undoing a deploy