Blog

Notes on hosting, honestly.

Scheduled Jobs for Web Apps: Cron Patterns and the Pitfalls That Bite

How to run cron-style scheduled jobs for a web app: why calling an HTTP endpoint on a schedule works well, how to make jobs safe to run twice, and the timezone, overlap and timeout mistakes to avoid.

November 1, 2026 Read →

Build Logs vs Runtime Logs: A Practical Guide to Debugging a Failed Deploy

Every failed deploy leaves its answer in one of two logs. Learn which log to read for which symptom, how to read each one, and the handful of failures that cause most broken deploys.

October 31, 2026 Read →

Custom Domains and HTTPS: The One DNS Record, Explained

How a custom domain actually reaches your app: CNAME vs A records, why an apex domain is different, how automatic HTTPS certificates get issued, and why a new domain sits at pending.

October 30, 2026 Read →

Monorepos on a git-push Host: Serving Frontend and API Under One Domain

How to deploy a monorepo with a frontend and an API so both live under one domain: root directories, private app-to-app URLs, a same-origin /api proxy, and the mistakes that break it.

October 29, 2026 Read →

Deploying a Laravel App from a Git Repo: The Production Checklist

What to check before you push a Laravel app to a git-based host: APP_KEY, debug mode, the database connection, PORT, storage, logs, migrations, queues, the scheduler and HTTPS behind a proxy.

October 28, 2026 Read →

Deploying a Ruby on Rails App from git: What to Check First

Before you push a Rails app to a git-based host, check these first: lockfile platforms, the production secret, Puma on PORT, database.yml and DATABASE_URL, assets, migrations, logs and background jobs.

October 27, 2026 Read →

Deploying a Go Web Service: A Minimal Production Checklist

A short, practical checklist for shipping a Go HTTP service from git: listen on PORT and 0.0.0.0, add timeouts, shut down gracefully, log to stdout, read config from the environment and connect to Postgres safely.

October 26, 2026 Read →

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.

October 25, 2026 Read →

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.

October 24, 2026 Read →

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.

October 23, 2026 Read →

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.

October 22, 2026 Read →

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.

October 22, 2026 Read →

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.

October 21, 2026 Read →

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.

October 20, 2026 Read →

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.

August 5, 2026 Read →