Skip to the content.

The 12-Factor App is a set of best practices for building modern, scalable, and maintainable software-as-a-service (SaaS) applications. It was introduced by engineers at Heroku to help teams build applications that are:

Here are the 12 principles:


1. Codebase — One codebase, tracked in version control, many deploys


2. Dependencies — Explicitly declare and isolate dependencies


3. Config — Store config in the environment


4. Backing Services — Treat backing services as attached resources


5. Build, Release, Run — Strictly separate build and run stages


6. Processes — Execute the app as one or more stateless processes


7. Port Binding — Export services via port binding


8. Concurrency — Scale out via the process model


9. Disposability — Maximize robustness with fast startup and graceful shutdown


10. Dev/Prod Parity — Keep development, staging, and production as similar as possible


11. Logs — Treat logs as event streams


12. Admin Processes — Run admin/management tasks as one-off processes


💡 In short: The 12-factor methodology pushes for stateless, portable, and easily deployable applications where configuration is separate, dependencies are explicit, and scaling is easy.