Features · Secrets & config
Nothing sensitive
in the repository.
Your app names the variables it needs. The values live on the platform and arrive at deploy — which matters more than ever when something else is writing the code.
What that buys you
No .env to leak
There's no secrets file in the working tree, so there's none to commit by accident or paste into a chat window.
Safe to hand to an agent
Your agent writes the manifest and commits it. It contains variable names and nothing else, so the repository stays clean by construction.
Never half-configured
A missing required value stops the deploy before it starts and says which one. Your users don't meet a broken app.
Two kinds of variable
Yours and
the platform's.
Everything the platform supplies carries a reserved prefix — the app's URL, the port to bind, the database connection string, the addresses it needs for sign-in. Your own variables can't use that prefix, so there's never a question about where a value came from.
Which means an app can read its own address instead of being told, and can be moved to a different domain without touching a line.
The full variable list →STRIPE_SECRET_KEY · required · secretASTRODOCK_DATABASE_URL
ASTRODOCK_APP_URL · ASTRODOCK_PORTDeploy blocked — STRIPE_SECRET_KEY has no value