Blog

Updates, guides, and insights from the Wemazu team.

Feature flags and real rollback

A feature flag system with a bounded kill-switch is one table, one function, one circuit breaker. That's what rollback looks like for small teams.

deployment feature-flags tutorial

Git hooks for deploy discipline

A three-line pre-push hook stops a specific class of Monday-morning incident. The hook is in the repo. The habit is in the hook.

git tutorial deployment

The 30-second deploy timeout

mod_fastcgi's idle timeout is exactly 30 seconds. Under cgi-fcgi, flush() does nothing. The only fix that worked was calling exit() right after.

deployment php apache troubleshooting

Blue-green on a 5-euro VPS

Two nginx upstreams and a one-line config swap give you blue-green on any box, without a load balancer or second server.

deployment nginx tutorial

Three years of pull-based deploys

Push-based deploys have CI pushing to production. Pull-based has the server fetching. After three years on pull, I lost one hour to a bug and zero to leaked credentials.

deployment reflection ci-cd

When a deploy succeeds but your app is down

The deploy pipeline is green. Customers see errors. The gap is almost always in what the health check is actually checking.

deployment troubleshooting nginx

Stop deploying on Fridays (but actually)

The real rule isn't about the day of the week. It's about whether the person who can fix what breaks is about to be offline.

deployment opinion team-process

Post-deploy checks that actually catch things

A health check that only returns 200 is a tautology. The check has to verify the new code path AND the read path, against a known value.

deployment monitoring tutorial

SSH deploy keys versus personal keys

A per-repo deploy key with read-only access is the only SSH key a production server should ever hold. Your personal key isn't part of the deploy.

ssh github security

Branch-to-domain mapping, in practice

Treat domains as separate destinations, not mirrors. Then the branch-per-domain pattern stops fighting with itself.

deployment git environments