Blog
Notes on hosting, honestly.
How to Deploy a Django App from git: Settings, Static Files and Migrations
A practical guide to deploying Django from a git repo: production settings from environment variables, ALLOWED_HOSTS, static files with WhiteNoise, gunicorn on the PORT variable, and running migrations on startup.
How to Deploy a FastAPI + Postgres App with git push
A practical guide to deploying FastAPI with Postgres from a git repo: the right start command, the PORT and 0.0.0.0 rule, the psycopg 3 URL scheme, and running Alembic migrations on startup.
How to Run Database Migrations on Deploy Safely: The Expand/Contract Pattern
Running migrations when your app starts is simple, but during a rollout the old and new versions share one database. Here's how expand/contract keeps both working, with a startup script you can copy.
Shipping AI Agent Work Safely: The Human Tag and the Rollback Window (Fleet Ledger, Part 1)
Where releases fit when coding agents write most of your changes: a person decides what goes live, and nothing counts as finished until production has had time to prove it.
Why Your App Works Locally but Fails After Deploy: The $PORT and 0.0.0.0 Fix
Your build passed, the logs look fine, and the URL still won't answer. Here's why hard-coded ports and localhost binding break deploys, and the two-line fix in Node, Python, Go, Ruby and PHP.
Environment Variables at Build Time vs Runtime, Explained
Why a changed env var sometimes does nothing, why frontend secrets leak, and how to tell build-time configuration from runtime configuration before your next deploy.
How to Deploy a Node + Postgres App with git push: A Practical Checklist
A pre-flight checklist for shipping a Node.js app with a Postgres database from a git push: ports, env vars, connection strings, migrations, logs and rollbacks.
We Moved Our Production App Off Vercel. What Broke.
Migrating a real SPA-plus-API app from Vercel to Candor Deploy — the silent failures we found in our own platform, and what we built to fix them.