Step 1 · I · The Seed
The seed
There is a smallest living whole: a program that runs, end to end, in the habitat where it will spend its life.
Before any decision about pages or data, the habitat. A configuration file, one route, one sentence of HTML — deployed. This is not scaffolding to be thrown away later; it is the organism at its smallest. Every subsequent step will be a differentiation of this seed, never a replacement of it.
Why this is first: the second rule of the sequence — always end-to-end — is only checkable if end-to-end exists, and it must exist in the real habitat, because App Engine's routing, its static handling, its environment variables are all decisions the seed makes on our behalf. A program that has never lived in production has never lived. In 2008 the seed was webapp's handler map; today it is Flask's route table. Same organ.
# app.yaml
runtime: python312
entrypoint: gunicorn -b :$PORT main:app
# main.py — the whole program
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "<p>A site will unfold here.</p>"
The entire system at step one. It deploys.