Shipping Features Is Not the Same as Shipping Releases
Indie teams often focus on coding speed and underinvest in release checks. Then approvals stall because metadata, legal pages, or screenshots drift from app behavior.
Step 1: Treat release assets as versioned artifacts
release_bundle:
version: 2.3.0
screenshots: ./artifacts/screenshots/
legal_pages:
- privacy-policy
- terms
changelog: ./CHANGELOG.md
Step 2: Add a pre-submit checklist script
#!/usr/bin/env bash
set -euo pipefail
[ -f "CHANGELOG.md" ] || exit 1
[ -d "artifacts/screenshots" ] || exit 1
[ -f "legal/privacy.html" ] || exit 1
[ -f "legal/terms.html" ] || exit 1
echo "release assets ready"
Step 3: Run post-release sanity checks
After approval, verify entitlement routes, onboarding flow, and analytics events in production.
Pitfalls
- Updating code without updating screenshots.
- Legal pages lagging behind product behavior.
- No rollback plan when a hotfix is needed.
Verification
- Release bundle is reproducible from the tagged commit.
- Store metadata and UI copy match product behavior.
- Critical flow checks pass within one hour of release.