The Twelve-Factor App is a methodology for developing software-as-a-service apps that are efficient, scalable and easy to manage. It recommends using declarative formats for setup automation, isolating dependencies, storing configurations in the environment, treating backing services as attached resources, separating build and run stages, executing the app as one or more stateless processes, exporting services via port binding, scaling out via the process model, maximizing robustness with fast startup and graceful shutdown, keeping development, staging, and production as similar as possible, treating logs as event streams and running admin/management tasks as one-off processes. This methodology can be applied to apps written in any programming language and can use any combination of backing services. The methodology is based on the observations and experiences of contributors who have been involved in the development, deployment, and scaling of hundreds of apps via the Heroku platform. This document aims to raise awareness of systemic problems in modern application development and provide a shared vocabulary and broad conceptual solutions to those problems. It is recommended for developers and ops engineers who deploy or manage such applications.