twelve-factor-app
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)
More from jamie-bitflight/claude_skills
perl-lint
This skill should be used when the user asks to lint Perl code, run perlcritic, check Perl style, format Perl code, run perltidy, or mentions Perl Critic policies, code formatting, or style checking.
24brainstorming-skill
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or when users request help with ideation, marketing, and strategic planning. Explores user intent, requirements, and design before implementation using 30+ research-validated prompt patterns.
11design-anti-patterns
Enforce anti-AI UI design rules based on the Uncodixfy methodology. Use when generating HTML, CSS, React, Vue, Svelte, or any frontend UI code. Prevents "Codex UI" — the generic AI aesthetic of soft gradients, floating panels, oversized rounded corners, glassmorphism, hero sections in dashboards, and decorative copy. Applies constraints from Linear/Raycast/Stripe/GitHub design philosophy: functional, honest, human-designed interfaces. Triggers on: UI generation, dashboard building, frontend component creation, CSS styling, landing page design, or any task producing visual interface code.
7python3-review
Comprehensive Python code review checking patterns, types, security, and performance. Use when reviewing Python code for quality issues, when auditing code before merge, or when assessing technical debt in a Python codebase.
7hooks-guide
Cross-platform hooks reference for AI coding assistants — Claude Code, GitHub Copilot, Cursor, Windsurf, Amp. Covers hook authoring in Node.js CJS and Python, per-platform event schemas, inline-agent hooks and MCP in agent frontmatter, common JSON I/O, exit codes, best practices, and a fetch script to refresh docs from official sources. Use when writing, reviewing, or debugging hooks for any AI assistant.
7agent-creator
Create high-quality Claude Code agents from scratch or by adapting existing agents as templates. Use when the user wants to create a new agent, modify agent configurations, build specialized subagents, or design agent architectures. Guides through requirements gathering, template selection, and agent file generation following Anthropic best practices (v2.1.63+).
6