
Friday Ship Checklist for Small Releases. A Build Next Stack field guide for learners shipping small projects.
Why Friday shipping needs a shorter ritual
Friday afternoon energy is not Monday morning energy. Morgan ships small side-project releases after lunch with a checklist capped at twenty minutes—enough guardrails to avoid weekend firefighting, light enough that you still ship. Big releases wait for Tuesday; typo fixes and minor features can leave on Friday if the checklist is green.
The checklist lives in docs/release-checklist.md copied into each release issue. Same order every time; no reinventing under caffeine fade.
Pre-flight: scope and rollback named
Before touching deploy:
- One sentence ship note — what user-visible thing changes
- Rollback pointer — previous tag or host deploy ID written in issue
- Migration? — if yes, backup command noted; if no, say no explicitly
If rollback pointer is blank, stop. Naming last good deploy takes ninety seconds and saves hours.
Friday ships are small diffs—under two hundred lines changed unless emergency. Larger diffs slip to Tuesday by policy, not guilt.
Verify on a clean-ish machine
Morgan runs quick start from README on laptop without relying on mystery global installs—or uses CI green on main as proxy when diff is docs-only. Minimum manual pass:
- App boots
- Happy path for the changed feature
- No new console errors on load
Record pass in issue comment with timestamp. Future you trusts written pass more than memory of feels fine.
Version bump and changelog line
Bump version in one canonical place—package.json, pyproject.toml, or git tag only. Changelog gets one bullet under Unreleased moved to dated section:
2026-06-16 — Fix export CSV headers for Excel; closes #31.
Tag after deploy success, not before—tag marks what is actually live. Tag name matches changelog date when possible.
Deploy window and observation
Deploy immediately after checklist—do not queue for evening. Morgan watches logs or error inbox for fifteen minutes live: refresh prod page, hit health endpoint, trigger changed feature once in prod.
Set phone alert for error tracker if configured. Fifteen minutes observation is the Friday tax; skipping it invites weekend debug.
If error rate spikes, rollback first, postmortem later. Pride is not uptime.
Post-ship: close loops
Close linked issues. Update README if behavior changed. Reply to any user waiting on fix—one sentence email or issue comment. Open follow-up issues for rough edges discovered during ship instead of silent TODO comments in code.
Schedule Monday five-minute review: anything flaky in prod metrics over weekend? If no, delete worry; if yes, issue already exists.
When to abort Friday ship
Abort if: CI red, rollback unclear, database migration untested, or you are tired enough to misread a diff. Morgan keeps a printed abort is success sticky—shipping broken on Friday earns a worse weekend than waiting.
Move issue to Monday ship with checklist partially checked—progress preserved, ego intact.
Morgan keeps a Ship log table in docs/releases.md: date, version, one-line note, rollback ID. Five rows visible history beats searching git tags under stress.
Communications: who needs to know
Even solo projects have stakeholders—users on a mailing list, a friend testing beta, future employer watching commits. Morgan drafts a two-sentence release note before deploy:
- What improved — user language, not commit jargon
- What to watch — honest rough edge if any
Post to changelog page, email three beta testers, or update GitHub release—pick one channel you will maintain. Silence after ship erodes trust when you wanted feedback.
Friday ships skip marketing fanfare; they still deserve honest user-visible notes when behavior changes.
Checklist artifact Morgan copies each release
Release issue body paste:
- Ship note one sentence
- Rollback ID recorded
- CI green screenshot or link
- Quick start or smoke pass timestamp
- Version bump commit hash
- Deploy time UTC
- Fifteen-minute observation notes
- Issues closed list
Empty checkbox blocks merge to main on Friday policy—self-enforced, but written. Partially filled checklist transfers to Monday issue unchanged.
After ten releases the checklist feels automatic; until then it is external memory compensating for Friday brain.
Morgan blocks calendar Ship window Friday 2–4pm local—no meetings, no parallel refactors. Container time makes checklist completion likely instead of aspirational.
Dry-run deploy on Thursday optional
When release touches infra—new env var, migration, CDN rule—Morgan dry-runs Thursday evening: same checklist except deploy to staging or local prod mirror. Friday becomes confirm not discover. Skipping dry-run is acceptable only for copy-only releases.
Dry-run notes attach to release issue; Friday reads them first. Two-minute read beats thirty-minute surprise.
Holiday weekends skip Friday ship entirely—rollback staff is you on vacation. Schedule ship for Wednesday before or Tuesday after; checklist still applies, day label changes only.
Measuring Friday ship success
Morgan tracks rollback count per quarter—not vanity, diagnostic. Zero rollbacks with zero ships means checklist too strict; rollbacks without learning means checklist incomplete. One rollback with documented fix in postmortem issue is acceptable; two same root cause is process failure.
Success metric: user-visible fix live before weekend with fifteen-minute observation logged. Not lines of code; not commits count.
Quarterly review of docs/releases.md shows ship cadence honestly—helps portfolio narrative about consistent delivery without exaggeration.
Morgan shares release note with future self via scheduled email Monday 9am—what shipped, what to watch—so weekend brain remembers context returning to desk.
Checklist PDF printed once and taped inside laptop lid survived three OS reinstalls when cloud docs were forgotten—physical backup for solo ops is not nostalgia.
First Friday ship of each month Morgan reviews checklist itself—remove steps never used, add step that would have prevented last rollback. Living checklist beats copied enterprise runbook.
Copy the checklist before next Friday
Create docs/release-checklist.md with rollback, verify, deploy, observe, close loops—five sections, twenty minutes total. Use it on the next small release even if that release is a README typo.
Friday shipping works when scope is tiny and rollback is named before deploy. Big bets deserve Tuesday eyes.
Write the one-line changelog before you push. Future users—and future you—will know what changed without reading git.