Butterfly Studios Denver, Colorado
Memo Phase 2.5 / v4 / April 2026
Will —

Your thoughts are folded in. Here's the updated plan.

Got your note. All five points land, and two of them shift the build in important ways — which is exactly why I wanted your read before we signed anything. This version of the memo folds your feedback into the scope. The product framing is sports-social, mobile-first with desktop mirror. Revenue Engine leads with creator monetization (the OF/IG/FB pattern you described). Foundation now explicitly covers minor-content compliance. The numbers moved slightly to reflect the work. Full walkthrough below.

01 / Where we are

What the $6K got you.

The first milestone delivered a working app. Not a mockup, not a prototype — a functioning iOS build that plays native video from a production backend. Here's a concrete accounting of what's live as of this memo:

Shipped under Phase 1 MVP
  • iOS app in TestFlight, running on device
  • Native MP4 playback from Firebase CDN
  • Phone auth + email signup flow
  • Firestore schema for videos + users
  • Firebase Storage pipeline live
  • Ten Cloud Functions deployed
  • Home feed + video player screens
  • Share, report, and block infrastructure

That's the foundation. It works — but it works the way any v1 works: the load-bearing walls are drywall, not steel. What comes next is the difference between an app that looks real and a business that is real.

02 / Your email, folded in

Where each of your five thoughts lands in the plan.

Before we go further, here's how your note maps to Phase 2.5 scope — so nothing you raised goes unanswered. Three were already aligned. Two shifted the build meaningfully, and both are in the updated plan below.

1 · Sports video social, mobile-first, desktop mirror
Aligned. That's the framing across all three engines. Mobile-first design, responsive desktop, social patterns (feed, tags, shares, discovery) throughout.
2 · Craigslist-simple homepage — sports list margin, revolving feed body
Like it. Clean discovery pattern, low cognitive load. Worth testing a "Most Recent / Trending / Near You" tab pattern inside the feed once we have early usage — but the Craigslist-simple spine is the right starting frame.
3 · "OF meets IG and FB" — tipping, super users, creator fundraising
Shifts scope. This is the biggest change. Moving money between users (not just from user to platform) requires Stripe Connect — a different Stripe product than basic subscriptions. It's the rails that make tipping, super-user subs, and fundraising campaigns possible. We build the rails in Phase 2.5. The actual tipping button and sub UX ships in Phase 3. Retrofitting Stripe Connect into a live app with existing users is 3x the effort of building it right the first time.
4 · Contact pull-in for tagging — autopopulate from phone
Already scoped. iOS contacts permission + autopopulate when typing in the tag field. Standard mobile pattern, no exotic work required. Part of the tag flow in Reach Engine.
5 · Security, legal protocol for minor-generated / explicit content
Non-negotiable, now explicit. Youth sports = youth content, so COPPA compliance is not optional. Adding an explicit line item to Foundation: age verification on uploaders, content moderation hooks (auto + manual flagging), reporting flows. Apple won't approve public App Store release without it. Worth walking through in our call — there's nuance on what "reasonable safeguards" looks like for a platform this size.
03 / Before we talk features

Storage is the business model, or it kills the business model.

Most video apps die quietly because the founder never ran the storage math. Users upload, the Firebase bill climbs, and a year later you're paying $3K/month for storage against $400 of revenue. I want you to see the numbers before we build anything that makes it worse.

Here's the picture, assuming an average user uploads roughly 2 GB of video — two or three game tapes or family archives at compressed MP4 quality. These numbers are based on current Firebase Blaze pricing: $0.026 per GB stored per month, plus egress (playback bandwidth) at ~$0.12/GB.

Storage economics, today's Firebase pricing

What it costs to host USPN at scale.

Scenarios assume 2 GB stored per user and moderate playback activity. The "If uncapped" column shows what happens with no storage tiers — power users upload unlimited footage, bandwidth explodes, and there's nothing collecting revenue against it.

User base Storage Bandwidth Monthly cost If uncapped
100 usersFriends & family beta 200 GB ~80 GB ~$15 ~$25
1,000 usersSoft launch 2 TB ~800 GB ~$150 ~$300
10,000 usersBreakout 20 TB ~8 TB ~$1,500 ~$3,200
100,000 usersScale 200 TB ~80 TB ~$15,000 ~$35,000+

Firebase Blaze pricing: $0.026/GB stored, ~$0.12/GB egress, plus Firestore reads and Cloud Functions. "Uncapped" assumes 10% of users upload 10x the average (a realistic power-user distribution). The gap between the two columns is the margin of survival.

This is why Phase 2.5 isn't optional plumbing — it's the business model. Without storage tiers, uploads caps, and cold-storage lifecycle rules, the Firebase bill at 10K users is higher than your subscription revenue. With them, it's a 85%+ margin business.

The tier structure I'm proposing

Tier Storage cap For Price
Free 2 GB Fans, casual uploaders, most of the userbase $0
Fan 20 GB Parents, family archivists, frequent sharers $5/mo
Archive 100 GB Coaches, serious archivists, small programs $15/mo
Program 500 GB Schools, leagues, institutional accounts $49/mo

What that stacks to at 10K users

Assume a realistic conversion mix: 94% free, 5% Fan, 0.5% Archive, 0.1% Program. That's:

Subtotal MRR at 10K users: ~$7,240/mo. Against infrastructure of roughly $1,500/mo. That's an 80% gross margin business — but only if we enforce the caps.

Without the tier plumbing, the same 10K users cost more than they generate. Phase 2.5 is what makes this math work.

04 / What Phase 2.5 actually builds

Three engines, one product.

I think about the work in three engines because each one solves a different problem and they stack cleanly. Revenue turns on the money. Reach spreads the product. Foundation keeps it from breaking. All three ship in parallel across four to five weeks.

Engine 01 Revenue

Two revenue streams, same engine — creators earn from their work, and the platform earns from storage tiers.

Your OF/IG/FB framing shifted this engine. The primary revenue mechanic is now creator monetization — tipping, super-user subscriptions, and creator fundraising — which requires Stripe Connect rather than vanilla Stripe. Connect lets money flow between users with USPN taking a platform fee (10–20% is the industry norm). The secondary mechanic is storage tier subscriptions (the Free / Fan / Archive / Program structure above), which keeps the infrastructure math honest.

What ships in Phase 2.5 is the rails: Stripe Connect account onboarding, KYC flows, platform fee configuration, payout infrastructure, and a creator earnings dashboard. The actual tipping button UX and super-user subscription flows ship in Phase 3 — that's frontend work that's fast once the plumbing is in. Doing Connect right the first time is the single most expensive thing to retrofit later.

What ships in Phase 2.5
  • Stripe Connect infrastructure — creator onboarding, KYC, payouts
  • Platform fee configuration (so USPN earns from every tip, sub, or campaign)
  • Storage tier subscriptions — Free / Fan / Archive / Program enforcement on upload
  • Creator earnings dashboard — views, revenue, pending payouts, history
  • Admin dashboard for platform-wide revenue monitoring
  • Optional: Legacybox digitization affiliate integration (add-on)
What ships in Phase 3 (future scope)
  • Tipping button UX on videos (one-tap $1/$5/$10)
  • Super-user subscription flows (monthly $ to creators)
  • Fundraising campaign tools (goals, rewards, progress bars)
  • Creator customization — bios, cover images, tip prompts
Engine 02 Reach

So every tag and share becomes a front door back to the app.

Two problems, one engine. Problem one: when someone shares a video link on Twitter or iMessage, the recipient gets a broken preview — every share is an acquisition leak. Problem two: tagging teammates or family currently requires typing full names from memory. Reach fixes both — proper web share pages that render thumbnails and titles on every social platform, plus contact pull-in so tagging is a one-tap autopopulate from the user's phone. Deep linking means shared links open directly in the app when installed.

What ships
  • Public web share pages with dynamic OG metadata (titles, thumbnails, previews)
  • Contact pull-in for tagging — iOS contacts permission + autopopulate in tag field
  • Updated uspn.tv landing page with App Store conversion
  • Deep link handling (shared URL → in-app route, fallback to App Store)
  • Share tracking so you know which videos drive the most signups
Engine 03 Foundation

The quiet engine — unglamorous, but it's what keeps the platform alive and App-Store-legal past 1,000 users.

This is the storage tier data model, the cold-storage lifecycle rules (videos older than 180 days migrate to cheaper storage automatically), the production-grade video player with dynamic per-video routing from Firestore, and the privacy/security hardening Apple will want to see before we go public.

Per your fifth point — minor-content compliance is now an explicit Foundation line item. Youth sports means youth uploaders and youth subjects, which triggers COPPA and Apple's own content safety review. That means age verification on uploaders, content moderation hooks (automated first-pass plus manual reviewer tools), and reporting flows that comply with Section 2230 and child safety best practices. This is non-negotiable for App Store public release, and cheaper to build now than retrofit after a rejection.

What ships
  • Production video player with dynamic Firestore routing (replaces MVP's hardcoded player)
  • Storage tier data model on user accounts (storage_used, storage_tier)
  • Cold-storage lifecycle rules for videos > 180 days old
  • Upload quota checks with soft warnings (90%) and hard blocks (100% on free)
  • COPPA age verification on uploaders (per your point 5)
  • Content moderation hooks — automated flagging + manual review tools
  • Reporting flows for inappropriate content + minor safety
  • Firebase security rule lockdown + privacy hardening for App Store review
05 / Before we sign anything

Three decisions I need from you.

These shape how Foundation gets built, and getting them wrong costs real money later. They're not scope additions — all three fit inside the existing Foundation budget. I just need your read before we start.

1 · Do we build the tier plumbing now, even if we launch free-only?
My rec: Yes. Build the data model and enforcement logic now, ship the app at Free tier only, turn on paid tiers in month 2 once we have usage data. Retrofitting tier logic into a live app is 3x the effort.
2 · Hard caps on free tier, or soft warnings?
My rec: Hard caps on free, soft warnings on paid. Free users get physically blocked at 2 GB — forces the upgrade conversation. Paid users get a warning at 90% and a block at 100% — respects their relationship with you. Without this, one power user can burn $100/month in storage on a free account.
3 · Cold-storage migration after 180 days?
My rec: Yes. Videos untouched for 180+ days move to cheaper Google Coldline storage automatically. Playback still works — slight 1-2 second delay on first load, invisible to users. Cuts archive-tier infrastructure cost roughly in half at zero UX penalty.
06 / Optional, not essential

Three add-ons if the budget stretches.

These aren't required for Phase 2.5 to work. They're worth considering, and worth naming so you know what's intentionally out of scope vs. what's an oversight.

Brand System
Unifies the app and the uspn.tv website under one visual identity. Right now they look like two different products stitched together — different colors, different type, inconsistent logo treatments. This restyles 8–10 key app screens to match a refined landing page, plus delivers a brand guidelines doc you own forever. Matters more than it sounds once you start sharing screenshots with partners.
Handoff Package
Full documentation bundle — architecture diagram, Firebase security rules, environment setup guide, credentials vault, 90-minute recorded walkthrough. If you ever bring in a technical partner or agency down the road, this package makes the handoff clean. Without it, the next person charges you to reverse-engineer your own codebase.
x402 Agentic Commerce Layer
This one's forward-looking. x402 is an emerging payment protocol that lets AI agents transact on behalf of users — so an AI assistant could auto-digitize a stack of VHS tapes through USPN, or buy access to a coach's archive, without needing a human in the loop. Low build effort, high optionality for the next 18 months. Skip it if it feels speculative. I'm not pushing.
07 / How it ships

Six weeks, milestoned.

Weekly checkpoints. No black-box stretches. Every Friday there's something visible to review, and I don't send invoices for work you haven't seen.

Week 01
Stabilization + discovery Clean up MVP loose ends, finalize architecture decisions (three decisions in Section 05), kickoff Stripe Connect account application (Connect takes 1-2 weeks for Stripe to approve, so we start immediately).
Week 02
Foundation build begins Production video player replaces the MVP hardcode, storage tier data model on user accounts, cold-storage lifecycle rules wired, COPPA age verification + moderation hook scaffolding.
Week 03
Revenue Engine Stripe Connect integration (creator onboarding, KYC, payout infrastructure), storage tier subscription enforcement, platform fee configuration.
Week 04
Reach Engine + Brand System Web share pages deploy, contact pull-in tagging, updated landing page, Legacybox affiliate integration, brand unified across app and web.
Week 05
Creator dashboard + polish Creator earnings view, upload UX with quota checks, storage meter on profile pages, admin monitoring.
Week 06
Beta ramp + handoff Invite-wave beta launch, live monitoring, bug fixes, App Store preparation, full handoff package delivery (if elected).
08 / What it costs

The numbers, one page.

Core Phase 2.5 is three engines at $12,000. Full scope with all three optional add-ons is $18,000. Pay as the work ships — nothing due until milestones are visibly complete.

Revenue Engine Stripe Connect, creator monetization rails, storage tiers, dashboards
$6,500
Reach Engine Share pages, contact pull-in tagging, landing page, deep links
$3,000
Foundation Production player, tier plumbing, COPPA compliance, moderation, cold storage
$2,500
Core Phase 2.5
$12,000
Brand System Optional — unifies app + website
+$3,000
Handoff Package Optional — documentation + walkthrough
+$1,500
x402 Agentic Commerce Optional — forward-looking
+$1,500
Full scope with all add-ons
$18,000
Payment schedule — core $12K
Kickoff
On signed scope. Unlocks Week 01.
$6,500
Milestone
Creator payment rails live, share pages deployed, tester verification.
$2,500
Delivery
All engines live, you sign off on production readiness.
$3,000

Review when you have a quiet hour. Push back on anything that doesn't land — the three decisions in Section 05 are the ones I actually need answers on. Everything else is refinable. We can talk through it after you've had a chance to play with the app on your phone, or earlier if you want to go back and forth on email.

I'd rather start this right than start it fast.

— Anderson
Anderson Bell
Founder, Butterfly Studios  ·  anderson@projectbutterfly.io