the twelve-factor app, one line each

12factor.net's own wording, trimmed to a single line per factor

01
Codebase - one codebase tracked in revision control, many deploys
one repo, deployed to as many environments as you want. simple rule, still gets violated at real jobs constantly
02
Dependencies - explicitly declare and isolate dependencies
03
Config - store config in the environment
the one everyone quotes. env vars, not a config file checked into git. you will look this up again the first time you leak a key
04
Backing services - treat backing services as attached resources
05
Build, release, run - strictly separate build and run stages
sounds obvious until you've worked somewhere that ssh's into prod and edits a file live
06
Processes - execute the app as one or more stateless processes
07
Port binding - export services via port binding
08
Concurrency - scale out via the process model
09
Disposability - maximize robustness with fast startup and graceful shutdown
matters most once you're on anything that autoscales or restarts containers on its own
10
Dev/prod parity - keep development, staging, and production as similar as possible
docker made most of this free. read the docs from before containers were normal and appreciate how bad it used to be
11
Logs - treat logs as event streams
12
Admin processes - run admin/management tasks as one-off processes
migrations, one-off scripts, console sessions. same codebase and config as the app, not a special snowflake box

Or start a list of your own. Free, it takes a minute.