Why I Deploy on Fridays, and the Tiny Script That Lets Me Sleep
The internet says never ship on Friday. As a solo builder with a day job, Friday evening is often my only chance, so I made it safe.
Every few months someone posts the classic advice: never deploy on a Friday. For a team with on-call rotations and weekend plans, that makes sense. For me, a solo builder with a full-time job, Friday evening is often the only stretch of focused time I get all week. Refusing to ship then would mean shipping roughly never.
So instead of avoiding Friday deploys, I made them boring.
The real fear is not Friday
The fear behind the rule is simple: something breaks, nobody notices, and users suffer all weekend. That risk does not come from the day of the week. It comes from three things:
- Not knowing quickly that something broke.
- Not being able to undo it quickly.
- Shipping too much at once, so you cannot tell what broke.
Fix those, and Friday is just another day.
Small batches only
My rule is that a Friday deploy contains one change I can describe in a single sentence. Not a feature plus a refactor plus a dependency upgrade. If I cannot write the commit message in under ten words, it waits.
A rollback I have actually practised
Every deploy records the previous working version. Rolling back is one command. Here is the core of the script, simplified:
#!/bin/sh
set -e
PREV=$(cat .last_good_release)
echo Rolling back to $PREV
./deploy.sh $PREV
curl -fsS $APP_URL/health || echo HEALTH CHECK FAILED
The important part is not the script. It is that I have run it on purpose, on a quiet Tuesday, to confirm it works. A rollback you have never tested is just a hope.
Alerts that reach my phone
I set up three alerts, and only three, so I do not learn to ignore them:
- Error rate above 2 percent for five minutes.
- Health check failing twice in a row.
- No successful payments in six hours during normal traffic.
That last one has saved me twice. Once, a payment webhook secret had rotated, and checkout looked fine but nothing was being recorded.
The thirty-minute watch
After a Friday deploy, I stay near my laptop for thirty minutes. I click through the main flows myself and watch the logs. Most problems show up in that window. If nothing looks odd after half an hour, I close the laptop and get on with my evening.
What changed
In the last six months I have shipped 22 Friday deploys. Two needed a rollback. Both were reverted in under five minutes, and neither affected more than a handful of users.
Rules like never deploy on Friday are really about trust in your safety net. Build the net, and the rule becomes optional.
If you are a solo builder and your only free time is the weekend, do not let generic advice stop you shipping. Just make undoing a mistake faster than making one.
Cover: Photo by Nick Wright on Unsplash.