twelve-factor-app

Installation
SKILL.md

Twelve Factor App

The Twelve-Factor App is a methodology for building software-as-a-service applications that are portable, deployable on modern cloud platforms, and scalable without significant architectural changes. Originally published in 2011 by Adam Wiggins (Heroku), the methodology was open-sourced in November 2024 and is now actively maintained at github.com/heroku/12factor with community-driven updates for Kubernetes, containers, and GitOps workflows.

SOURCE: https://12factor.net/blog/open-source-announcement (accessed 2026-02-26)

The Twelve Factors

Factor Principle
I. Codebase One codebase tracked in revision control, many deploys
II. Dependencies Explicitly declare and isolate dependencies
III. Config Store config in the environment
IV. Backing services Treat backing services as attached resources
V. Build, release, run Strictly separate build and run stages
VI. Processes Execute the app as one or more stateless processes
VII. Port binding Export services via port binding
VIII. Concurrency Scale out via the process model
IX. Disposability Maximize robustness with fast startup and graceful shutdown
X. Dev/prod parity Keep development, staging, and production as similar as possible
XI. Logs Treat logs as event streams
XII. Admin processes Run admin/management tasks as one-off processes

Modern Extensions (Beyond 12-Factor)

Three additional factors are widely adopted in cloud-native practice, established by Kevin Hoffman's Beyond the Twelve-Factor App (O'Reilly, 2016) and formalized in the 15-factor methodology:

Factor Principle
XIII. API-First Design and publish the service API contract before implementing the backing logic
XIV. Telemetry Treat observability (metrics, traces, structured logs) as a first-class operational requirement
XV. Authentication and Authorization Elevate identity, authn, and authz to first-class concerns in service design

SOURCE: https://www.oreilly.com/library/view/beyond-the-twelve-factor/9781492042631/ (accessed 2026-02-26)

Reference Categories

Methodology Overview

Background, goals, target audience, and design philosophy.

Codebase and Dependencies (Factors I and II)

Version control discipline and explicit dependency management.

Configuration and Backing Services (Factors III and IV)

Environment-based config and treating backing services as swappable attached resources.

Build, Release, Run (Factor V)

Strict separation of the three stages that transform a codebase into a running deploy.

Processes and Port Binding (Factors VI and VII)

Stateless share-nothing process execution and self-contained service export via port binding.

Concurrency and Disposability (Factors VIII and IX)

Scaling via the process model and building robust disposable processes.

Dev/Prod Parity and Logs (Factors X and XI)

Minimizing environment gaps and treating logs as event streams.

Admin Processes (Factor XII)

Running one-off administrative and maintenance tasks as processes in the same environment as the app.

Modern Evolution

Open-source governance, narrow-conduit concept, 15-factor extensions, Reactive Principles, and monolith modernization patterns.

Quick Compliance Checklist

Use this to audit an application against the methodology:

  • Single codebase in VCS; shared code extracted to libraries (I)
  • All dependencies declared in manifest; isolation tool in use (II)
  • All deploy-varying config in env vars; no config in code (III)
  • Backing services accessed via URL/credentials from config; swappable without code changes (IV)
  • Build, release, run stages strictly separated; releases immutable with unique IDs (V)
  • Processes stateless and share-nothing; no sticky sessions; session state in external store (VI)
  • App self-contained; webserver library bundled; service exported via port binding (VII)
  • Scale via adding processes, not growing single process; no daemonizing or PID files (VIII)
  • Fast startup; graceful SIGTERM handling; robust against sudden death (IX)
  • Dev and prod use same backing service types; time/personnel/tools gaps minimized (X)
  • All log output to stdout; no log file management in app code (XI)
  • Admin tasks run as one-off processes against same release and config as regular processes (XII)
  • Service API contract defined and documented before implementation (XIII)
  • Metrics, distributed traces, and structured logs emitted; observability platform configured (XIV)
  • Authentication and authorization handled as first-class concerns; no ad-hoc security (XV)
Related skills

More from jamie-bitflight/claude_skills

Installs
5
GitHub Stars
40
First Seen
Mar 29, 2026