Pre-Launch
Mar 18 – Mar 31
Build Phase
~15 tasks executed
69 test posts (purged)
34 test sessions (purged)
- MVP build + polish cycle
- App live, feeds seeded, admin dashboard functional
- All pre-launch test data excluded from analytics (baseline: Apr 1)
Week 1: Soft Launch
Apr 1 – Apr 6
Soft Launch
~12 pageviews
~5 unique visitors
0 organic sessions
$33 ad spend (start)
- Meta Ads launched — 7–12% initial CTR
- 20+ Good Tips seeded from Reddit r/Coachella
- Traffic blind — landing page tracking not yet deployed
Week 2: Pre-Coachella Ramp
Apr 7 – Apr 9
Ramp + Fixes
~48 pageviews (Day 8 snapshot)
~23 unique visitors
- Tracking fix deployed — landing page was blind before this
- UTM columns added to analytics schema
- Bugs fixed: scheduler error, passphrase bypass, feed routing
Week 3: Coachella Weekend 1
Apr 10 – Apr 13
PEAK
686 pageviews (91% of season)
~300+ unique devices
59 sessions
35+ posts
90+ reactions
10.4% CVR (home → session)
- Meta Ads $10–20/day throughout
- UTM attribution verified mid-W1
- Product validated — engagement real when people found it
Week 4: Between Festivals + Coachella W2
Apr 14 – Apr 19
CRITICAL — OUTAGE
~26 pageviews (W2)
2 sessions
119 visitors lost (outage)
- P0: Session creation broke on Apr 14 deploy — 48-hour outage
- Coachella Weekend 2 effectively dead on arrival
- Passphrase A/B test launched Apr 18: removed passphrase for 50% of users
- A/B result inconclusive — n=6 per group, required n=36+
Week 5: Stagecoach
Apr 24 – Apr 26
Stagecoach
41 pageviews
31 unique devices
6 sessions
0 reactions
16.7% CVR (n=1, N/A)
- Best-performing ad disapproved by Meta mid-festival — no explanation
- Polsia billing discrepancy (25 vs 50 credits) blocked replacement ads and optimization
- 17x gap vs Coachella W1 — primarily execution gap, not product gap
Week 6: Shutdown Prep
Apr 27 – May 1
Closure
100% data integrity verified
Zero data loss
4/4 shutdown checks passed
- Final Retrospective completed
- Season 1 Playbook compiled
- Farewell page verified, data export cron verified
- All 4 shutdown QA checks passed
Severity scale: P0 = total production outage · P1 = major feature broken · P2 = degraded experience · P3 = cosmetic/minor
| Bug | Severity | Found | Fixed | Impact |
|---|---|---|---|---|
| Session creation regression | P0 | Apr 14 | Apr 16 Fixed | 48-hour outage. 119 visitors could not create sessions. Killed Coachella W2 momentum entirely. |
| Analytics tracking blind (landing page) | P1 | Apr 7 | Apr 7–8 Fixed | No pageview data for Week 1 soft launch. Lost early UTM attribution visibility. |
| Passphrase bypass bug | P1 | Pre-launch | Late Mar Fixed | Users could skip the daily passphrase gate entirely. Undermined word-of-mouth mechanic. |
| Scheduler / cron error | P1 | Early Apr | Apr 7–8 Fixed | Daily scheduled jobs failing silently. Passphrase rotation and cleanup tasks not running. |
| Feed routing issue | P2 | Early Apr | Apr 7–8 Fixed | Incorrect feed displayed for some geo tiers. Valley users saw global observer feed. |
| UTM columns missing from schema | P2 | Apr 7 | Apr 8 Fixed | No UTM attribution captured for first week of ad traffic. Migration deployed retroactively. |
| Admin dashboard display bugs | P2 | Mar–Apr | Multiple Fixed | Count discrepancies, incorrect session displays, minor layout issues in Signal admin panel. |
| Browser agent content seeding failure | P2 | Apr W1 | Workaround Fixed | Browser agents unreliable for seeding posts via admin panel. Switched to direct DB inserts. |
| Geo-detection edge cases | P2 | Pre-launch | Late Mar Fixed | Some Valley users detected as "observer" due to geo boundary edge cases. |
| Passphrase A/B test implementation | P3 | Apr 18 | Inconclusive | A/B launched but n=6 per group (need 36+). Statistically meaningless. Passphrase removed Apr 18. |
| Season1 page screenshot/asset issues | P3 | Apr 23 | Apr 23 Fixed | 6 visual fixes: gradient, grid layout, video player, side-by-side assets, section styling. |
| Service worker / PWA caching conflicts | P3 | Early Apr | Apr Fixed | Stale cached assets serving old JS/HTML after deploys. Cache headers tightened. |
| Creative | Format | CTR | CPC | Status |
|---|---|---|---|---|
| Ad 1: 26F desert festival ID 120242511966900328 |
Sora 2 AI video | 8.09% → 20.04% lifetime | $0.07 | Disapproved Mid-Stagecoach |
| Ad 2: 24M anti-algorithm | Sora 2 AI video | 11.4% | — | Ran full campaign |
| Ad 3: 30F valley-local | Sora 2 AI video | 0% | — | Paused early |
| Coachella Bound song ads | Sora 2 + original music | — | — | Deployed W2 |
| Stagecoach replacements (2 creatives) | New creatives | — | — | Limited delivery |
Campaign Summary
$33.89
Total Spend
20%
Peak CTR
$0.07
Best CPC
11,531
Peak Impressions
Ad disapproval: Best-performing creative (Ad 1) removed by Meta mid-Stagecoach. No warning, no clear compliance violation documented, no recovery path. Compliance review workflow must be built before any future campaign.
Campaign Configuration
| Parameter | Value |
|---|---|
| Daily budget | $10–20/day |
| Age targeting | 18–35 |
| Geo targeting | Coachella Valley + festival interests |
| Format | Instagram/Facebook video (vertical, iPhone selfie style) |
| Top creative style | Influencer persona (value-led: tips, music) vs. product demo (mechanism). Persona >>> demo. |
Financial Costs
| Category | Detail | Cost |
|---|---|---|
| Polsia subscription | 2 months × $49 | $98 |
| Credit packs | 2 months × $19 | $38 |
| Meta Ad spend | ~45 days of campaigns | $33.89 |
| Total | All infrastructure + ads + AI tooling | ~$170 |
Task Distribution (~50 total)
| Category | Count | % of Total |
|---|---|---|
| Engineering | ~22 | 44% |
| Meta Ads | ~12 | 24% |
| Data / Analytics | ~8 | 16% |
| Research | ~3 | 6% |
| Content | ~3 | 6% |
| Browser | ~2 | 4% |
| Total | ~50 | 100% |
Infrastructure: Hosting (Render), DB (Neon PostgreSQL), and CDN (Cloudflare) are included in the Polsia subscription and not billed separately. Zero infrastructure cost outside the $98 + $38 subscription.
| Report | ID | Type | Date | Notes |
|---|---|---|---|---|
| Final Retrospective | #546366 | Final | Apr 28 | Full season postmortem. Primary source of record. |
| Season 1 Playbook | #570868 | Playbook | Apr 28 | Season 2 blueprint. Source for Appendix F checklist. |
| Data Integrity Verification | #550164 | Verification | Apr 28 | 100% match, zero data loss confirmed. |
| Shutdown Verification | #549671 | Verification | Apr 27 | All 4 shutdown checks passed. |
| Stagecoach 3-Day Analytics | #550170 | Analytics | Apr 26 | 41 PV, 31 devices, 6 sessions, 0 reactions. |
| Pre-Stagecoach Baseline | #479568 | Analytics | Apr 21 | Baseline metrics before Stagecoach weekend. |
| W1 Day 2 Analytics | #399410 | Analytics | Apr 11 | Coachella W1 day 2 snapshot during peak. |
| W1 Day 1 Analytics | #373582 | Analytics | Apr 10 | Coachella W1 launch day — first real traffic data. |
| Day 8 Snapshot | #357150 | Analytics | Apr 8 | Pre-Coachella: ~48 PV, ~23 unique visitors. |
Source: Season 1 Playbook (Report #570868, Apr 28, 2026). This checklist assumes a Coachella 2027 target with ~6-week lead time.
6 Weeks Out
- Secure partner locations for physical QR distribution (cafes, art spaces, third spots)
- Recruit and brief 2–4 student / community ambassadors
- Design QR print materials (posters, stickers, hangtags)
- Begin ad creative production — submit to Meta for compliance review before campaign start
4 Weeks Out
- Build real-time admin dashboard with live session/post/reaction counters
- Prepare 3–5 ad creatives with full compliance review before festival
- Confirm ad account standing and budget authorization
- Set up proper A/B test infrastructure (minimum n=36 per group before reading results)
2 Weeks Out
- Print and distribute QR codes to partner locations
- Test geo-fencing boundaries with devices at actual festival coordinates
- Seed initial content (100+ high-quality tips, local knowledge)
- Brief ambassadors on talking points and passphrase distribution
- Run full regression test suite — no deploys without testing session creation
1 Week Out
- Launch paid ads (Meta + Instagram)
- Activate on-site staff coordination
- Final QA pass on all critical flows: session creation, geo-gate, passphrase, posting, reactions
- Freeze deploys for 48h before festival start unless P0
Festival Day 1
- 100+ QR placements live at partner locations
- 2–4 on-site staff/ambassadors with mobile access to admin
- Monitor real-time dashboard every 30 min during peak hours
- Check 50 PV threshold by end of Day 1 evening
- Have replacement ad creatives pre-approved and ready if primary gets disapproved
Polsia Billing Discrepancy — 25 vs 50 Credits
During Stagecoach, the account showed 25 available credits when the subscription should have provided 50. This discrepancy was unresolved for multiple weeks and directly blocked the ability to run replacement ad creative tasks and optimization work during the most critical window of the season. The billing issue was reported to Polsia but not resolved before Stagecoach ended.
Blocking
Stagecoach Impact
Unresolved During Season
Browser Agents — Unreliable for Content Seeding
Browser agents were deployed to seed the feed via the admin panel UI. They failed consistently due to bot detection or interaction timing issues. The working pattern — discovered too late in W1 — was to use direct database inserts via the Engineering agent. Any future content seeding strategy must use DB-level operations, not browser automation for this use case.
Late Discovery
Workaround Found
Meta Ad Disapproval — No Warning, No Clear Violation
Ad ID 120242511966900328 — the best-performing creative in the campaign (20% CTR, $0.07 CPC) — was removed by Meta mid-Stagecoach. No advance warning was provided, no clear compliance violation was documented, and there was no recovery path to reinstate the ad within the festival window. Replacement creatives were queued but never achieved comparable delivery. The absence of a pre-approved backup creative library was the structural failure here.
Blocking
No Recovery Path
Structural Fix: Pre-approve backup creatives