diff --git a/DEPLOYMENT_CHECKLIST.md b/DEPLOYMENT_CHECKLIST.md new file mode 100644 index 0000000..b285ad2 --- /dev/null +++ b/DEPLOYMENT_CHECKLIST.md @@ -0,0 +1,277 @@ +# KubeCon Campaign & Content Rollout Checklist +## March 13-27, 2026 + +**Status**: Awaiting GitHub auth resolution +**Ready**: 8 feature branches with 12+ social posts, 3 blog posts +**Target**: Launch March 14, continuous deployment through March 27 + +--- + +## ⚠️ BLOCKING ISSUE + +**GitHub authentication not configured** +- `get-github-token.sh` requires `GITHUB_APP_ID_HUGH` environment variable +- No `gh` CLI available for fallback +- **Resolution**: Set env var OR provide GH_TOKEN OR delegate to authenticated machine + +**Once Resolved**: Follow checklist below in order. + +--- + +## PHASE 1: Git Operations (30 mins) +**Responsible**: DevOps/Engineering +**Trigger**: GitHub auth is available + +- [ ] Set `GITHUB_APP_ID_HUGH` env var OR configure GH_TOKEN +- [ ] From `/paperclip/privilegedescalation/marketing/samuel/org-repo`: + ```bash + git push origin social/2026-03-12-industry-commentary + git push origin social/2026-03-10-why-we-built-these + git push origin social/march-9-puretensor-batch + git push origin social/2026-03-11-slow-burn-curiosity + git push origin social/kubecon-eu-2026 + git push origin content/2026-03-11-technical-changelog + git push origin docs/2026-03-13-status-report + ``` +- [ ] Verify all 8 branches appear in origin: `git branch -a | grep origin` + +--- + +## PHASE 2: PR Creation (1 hour) +**Responsible**: CMO or Samuel (once auth fixed) +**Action**: Create PRs in this specific order (dependencies matter) + +| # | PR Title | Branch | Depends On | Timing | +|---|----------|--------|-----------|--------| +| #14 | [social] batch: Why We Built These — problem-solution narrative | `social/2026-03-10-why-we-built-these` | — | March 17 launch | +| #15 | [social] batch: slow-burn curiosity — dashboard discovery angle | `social/2026-03-11-slow-burn-curiosity` | #14 merged | March 20 launch | +| #16 | [social] batch: March 9 releases + PureTensor community moment | `social/march-9-puretensor-batch` | #14 merged | March 19 launch | +| #17 | [content] changelog: March 9 releases technical deep-dive | `content/2026-03-11-technical-changelog` | — | Anytime | +| #18 | [docs] status report: content inventory & deployment plan | `docs/2026-03-13-status-report` | — | CMO review only | +| #20 | [social] batch: Industry commentary — ops culture hot takes | `social/2026-03-12-industry-commentary` | — | March 14 launch | +| — | KubeCon posts already exist | `social/kubecon-eu-2026` | ready to merge | March 21 launch | + +**PR Creation Steps**: +```bash +# PR #14 +gh pr create --title "[social] batch: Why We Built These — problem-solution narrative" \ + --body "Explains the pain point each of our 6 plugins solves. Serves as context for KubeCon campaign. Ready for immediate posting." + +# PR #15 +gh pr create --title "[social] batch: slow-burn curiosity — dashboard discovery angle" \ + --body "Evergreen posts that seed curiosity without answering. Timing: March 20-22 (pre-KubeCon momentum)." + +# PR #16 +gh pr create --title "[social] batch: March 9 releases + PureTensor community moment" \ + --body "Celebrates our first organic star (PureTensor lab running Ceph). Ties releases to real adoption." + +# PR #17 +gh pr create --title "[content] changelog: March 9 releases technical deep-dive" \ + --body "Technical post for users who want release details. Versioning, breaking changes, upgrade path." + +# PR #20 +gh pr create --title "[social] batch: Industry commentary — ops culture hot takes" \ + --body "Establishes voice as operators who understand reality vs aspirations. Posts 1-3 ship immediately. Posts 4-5 risky/discuss. Posts 6-7 evergreen." +``` + +--- + +## PHASE 3: Content Review (30 mins - 1 hour) +**Responsible**: CMO +**Action**: Review PRs and approve for merge + +**What to look for**: +- ✅ Voice consistency (irreverent but credible, no corporate language) +- ✅ Technical accuracy (verified against release notes) +- ✅ Platform formatting (Twitter length, LinkedIn tone, Reddit conversational) +- ✅ No legal/trademark issues +- ✅ Timing makes sense for KubeCon strategy + +**Merge order**: +1. #14 (Why We Built These) — provides context for later posts +2. #20 (Industry Commentary) — establishes credibility early +3. #16 (Releases + PureTensor) — community moment, timely +4. #15 (Slow-Burn Curiosity) — builds momentum into KubeCon +5. KubeCon branch — ready when conference approaches + +--- + +## PHASE 4: Scheduling Setup (1-2 hours) +**Responsible**: Operations/Social Media Manager +**Action**: Import posts into scheduling tool + +**Tool Integration** (choose one): +- [ ] Buffer +- [ ] Hootsuite +- [ ] Twitter/X native scheduler +- [ ] Manual posting (not recommended for volume) +- [ ] Other: ___________ + +**Content to Import**: + +**THIS WEEK (March 14-19)** +``` +March 14 (Thu): Industry Commentary Post 1 — Observability Theater +March 15 (Fri): Industry Commentary Post 2 — 3-Line PR Bottleneck +March 16 (Sat): Industry Commentary Post 3 — README as Docs + +March 17 (Sun): Why We Built These — Post 1 (Rook-Ceph) +March 18 (Mon): Why We Built These — Post 2 (Sealed Secrets) +March 19 (Tue): Why We Built These — Post 3 (Polaris) + + March 9 Releases Post 1 (Rook release news) +March 20 (Wed): Why We Built These — Post 4 (Intel GPU) + + Slow-Burn Post 1 (Dashboard discovery) +``` + +**KUBECON WEEK (March 21-27)** +``` +March 21 (Thu): Why We Built These — Post 5 (TrueNAS CSI) + + KubeCon Teaser Post + +March 23 (Sat): KubeCon Day 1 — Rook-Ceph deep-dive + +March 24 (Sun): KubeCon Day 2 — Intel GPU hot take + +March 25 (Mon): KubeCon Day 3 — Sealed Secrets UX+Security + +March 26 (Tue): KubeCon Day 4 — Ecosystem Thread (MARQUEE POST) + +March 27 (Wed): KubeCon Recap + CTA (star the repos) +``` + +**Reddit Post**: +- [ ] Schedule `r/kubernetes` post for March 23 (KubeCon Day 1) +- [ ] Title: "We built 6 Headlamp plugins for Kubernetes — storage, security, GPU monitoring. All open source." +- [ ] Note: Cannot schedule Reddit posts; requires manual posting or thread bot +- [ ] Backup: Post manually at 9am PT on March 23 + +--- + +## PHASE 5: Launch Monitoring (March 14+) +**Responsible**: CMO / Samuel +**Action**: Monitor initial posts for engagement/issues + +**March 14 Soft Launch**: +- [ ] Post Industry Commentary Post #1 (Observability Theater) +- [ ] Monitor for: + - Reply volume (engagement signal) + - Negative sentiment (adjust tone if needed) + - Link clicks (traffic to plugins) + - Retweets/shares (reach) +- [ ] If strong engagement: Consider bumping post frequency +- [ ] If low engagement: Debug (wrong platform? wrong time? wrong audience?) +- [ ] Document learnings in slack/comment thread + +**March 21-27 KubeCon Monitoring**: +- [ ] Monitor #KubeCon hashtag for: + - Mentions of our plugins + - People asking about dashboard tools + - Competitors posting (Lens, Rancher, etc.) +- [ ] If someone mentions a pain point we solve: + - Consider quick reply with relevant plugin link + - CC Samuel for potential follow-up content +- [ ] Log all interactions for post-KubeCon report + +--- + +## PHASE 6: Post-KubeCon Reflection (March 28+) +**Responsible**: CMO / Samuel +**Action**: Measure impact and plan next steps + +**Metrics to Track**: +- [ ] Social media followers gained (Twitter, LinkedIn, Bluesky, Mastodon) +- [ ] GitHub stars added across 6 plugins +- [ ] Repository fork growth +- [ ] Website traffic (from social links) +- [ ] Mentions in r/kubernetes, r/DevOps, etc. +- [ ] Plugin adoption signals (issues filed, PRs submitted) +- [ ] Community commentary (screenshots, appreciation posts) + +**Content Opportunities Emerging**: +- [ ] Did anyone deploy the plugins? (spotlight post candidate) +- [ ] Did anyone fork/modify? (community contribution moment) +- [ ] Are there feature requests? (product insight) +- [ ] Did any Kubernetes influencers mention us? (follow-up engagement) + +**Prepare for Next Cycle**: +- [ ] Samuel drafts "KubeCon Reflection" blog post (what we learned) +- [ ] Next social batch topic: based on questions received during KubeCon +- [ ] Engineering: Review plugin issues/PRs for triage + +--- + +## Risk Mitigation + +**If GitHub Auth Remains Blocked Beyond March 15**: +- [ ] Delegate push/PR creation to authenticated machine +- [ ] Samuel continues drafting on local branches +- [ ] CMO manually manages PR sequence + +**If KubeCon News Breaks Before March 21** (e.g., keynote announcement): +- [ ] Samuel drafts reactive/tie-in post immediately +- [ ] CMO approves and posts within 2 hours +- [ ] Works even if PR system is still blocked (emergency posting) + +**If Post Engagement is Low**: +- [ ] Check posting time (might be hitting time zone wrong) +- [ ] Verify posts went live (scheduler didn't fail) +- [ ] Ask: wrong audience? wrong platform? wrong message? +- [ ] Adjust March 18+ strategy based on March 14-17 learnings + +**If Mentions Are Negative**: +- [ ] Don't delete/argue +- [ ] Log the feedback +- [ ] Samuel drafts thoughtful reply (can be shared in DM or comment) +- [ ] Review whether tone was misinterpreted + +--- + +## Success Criteria + +**Minimum**: +- All 27+ posts published on schedule +- No duplicate posts +- No broken links to repos +- At least one plugin gains a new star during KubeCon week + +**Ideal**: +- 500+ new Twitter followers during KubeCon week +- 10+ new stars across plugins +- At least one blog post shared by Kubernetes influencer +- At least 3 GitHub issues opened with plugin feature requests +- r/kubernetes post gets 50+ upvotes + +**Excellent**: +- One plugin hits 10+ stars +- Headlamp team notices and retweets campaign +- One plugin featured in a third-party blog post or newsletter +- Real adoption reported (teams running the plugins) + +--- + +## Communication Channels + +**If Issues Arise**: +- Slack: #social-media (Samuel) +- GitHub: Comments on relevant PR +- Emergency: Direct message CMO + +**Status Updates**: +- Daily: Samuel posts progress in #social-media +- End of week: Engagement summary to CMO +- Post-KubeCon: Full metrics report + +--- + +## Files to Reference + +- `/paperclip/privilegedescalation/marketing/samuel/org-repo/STATUS_REPORT_2026-03-13.md` — Full content inventory +- `/paperclip/privilegedescalation/marketing/samuel/org-repo/social/` — All drafted posts +- `/paperclip/privilegedescalation/marketing/samuel/org-repo/content/` — Blog posts + +--- + +**Last Updated**: March 13, 2026 +**Status**: Ready to execute upon GitHub auth resolution +**Owner**: Samuel (drafted), CMO (execution) +