Internal Strategy Document

The LitterMap
Master Plan

Pokemon Go meets environmental data infrastructure. A consumer game that becomes a brand accountability platform and municipal intelligence product.

01 / The Big Picture

Three businesses, one data stream

Every photo a user takes feeds all three layers. The consumer game creates the data. The brand layer monetizes the data. The municipal layer sells the data.

🎮
Layer 1: The Game
Users photograph litter for XP, levels, streaks, badges, and city leaderboards. Camera-first, Snapchat-style. Free to play. This is the data engine.
💰
Layer 2: Brand Bounties
Brands pay per verified pickup of their products. Users earn real money. Brands get litter reduction + PR. The "Wall of Shame" is the stick; bounties are the carrot.
🏛️
Layer 3: Municipal Data
Cities buy heatmaps, trend reports, and hotspot alerts to optimize cleanup crews. Automated monthly PDFs. This is pure SaaS recurring revenue.
🔑 Why this works
The game is fun without paying. But the data it creates is worth money to brands (reputation risk) and cities (operational efficiency). Users play for free. Revenue comes from companies and governments who benefit from the data. The user never pays.
02 / Core Loop

How people use it

Camera-first. Snap litter, AI classifies it, earn XP. The Snapchat navigation model: swipe between camera, map, feed, and profile.

Open app (camera)
Snap litter photo
AI classifies type + brand
GPS tags location
Earn XP + level up

The XP system is the backbone

XP is reputation, not currency. You never spend it. You accumulate it. Higher XP unlocks titles, badges, territory guardian status, and eligibility for brand bounty payouts.

ActionXPWhy
Photograph litter+10Base reward for every pick
AI identifies brand+5Brand data is the most valuable data point
GPS captured+5Location data enables map/heatmap features
3+ day streak active+5Retention mechanic, loss aversion
Maximum per pick25Achievable every time if GPS + brand + streak

What XP unlocks

Titles
Litterbug (L1) → Street Sweeper (L10) → Trash Panda (L25) → Guardian (L50) → Legend (L100). Visible on profile and leaderboard.
Custom Map Pins
At XP thresholds, unlock unique pin designs. Your litter shows up different on the map. Status signal.
Territory Guardian
Highest XP in a hex zone = your name on the map. Pokemon Go gym mechanic. Others must out-pick you to take it.
Bounty Eligibility
Must be Level 5+ to claim bounties. Anti-fraud gate. Your XP history proves you're a real picker, not a bot.
03 / App Store Path

PWA today, App Store later

Start as a Progressive Web App. Validate demand. Wrap in a native shell when you hit 1,000+ active users. Here's the exact path.

1
PWA on Cloudflare Now
Single worker serving camera-first PWA. Add to Home Screen from Safari/Chrome. Looks and feels like a native app. No app store approval needed. Ship and iterate daily.
Already built. Live today.
2
Add proper PWA manifest + service worker This week
manifest.json with app name, icons, splash screen, display: standalone. Service worker caches the shell for true offline. Safari "Add to Home Screen" prompt shows the real icon and name.
~1 hour of work. Makes the PWA feel native.
3
TestFlight via Capacitor Month 3-4
When you hit 500+ active PWA users, wrap the PWA in a Capacitor (Ionic) native shell. This gives you: push notifications on iOS, App Store submission, camera permissions UX, and background location. The web code stays the same -- Capacitor just wraps it in a WKWebView.
~20-30 Claude hours. Mostly configuration, not new code.
4
App Store submission Month 4-5
Apple requires: privacy policy, terms of service, app review guidelines compliance. For LitterMap specifically:

Privacy: Camera access, GPS access, photo storage. All must be declared in Info.plist with clear usage descriptions.
Payments: Brand bounty payouts go through Stripe Connect, not Apple IAP. This is allowed because it's paying users for a service (cleanup), not selling digital content. Same as Uber paying drivers.
Content: User-generated photos of trash. No moderation concerns -- it's literally garbage.
Rejection risks: "Minimum functionality" -- Apple sometimes rejects PWA-wrapper apps. Mitigation: add at least one native feature (push notifications, haptic feedback on snap) so it's not a pure web wrapper.
$99/year Apple Developer Program. 1-2 week review cycle.
5
Google Play Store Month 4-5
Same Capacitor build, export as Android APK. Google Play is less strict than Apple. PWA wrappers are generally accepted. $25 one-time developer fee. Review takes hours, not weeks.
Same codebase as iOS. Minimal extra work.
💡 Why not go native from day one?
React Native debugging produces cryptic Xcode/Gradle errors that even experienced developers struggle with. For a solo builder using Claude Code, native module issues (camera, maps, ML) are the #1 project-killer risk. PWA-first eliminates this. Capacitor wrapping later is the safe on-ramp to App Store presence -- your web code doesn't change, you just add a native shell around it.
04 / Brand Pitch

How to make Coca-Cola pay you

The pitch is simple: "We have photographic evidence that your products are the #1 litter in [city]. You can either clean it up through our bounty program, or we'll publish the data."

The Wall of Shame

Public, auto-generated rankings of which brands produce the most litter in each city. Updated in real-time from user picks. This is the leverage.

Wall of Shame
Dickson, TN
Last 30 days
1
Coca-Cola
87 items (35% of branded litter)
🥤
2
McDonald's
52 items (21%)
🍟
3
Red Bull
34 items (14%)
🥫
4
Marlboro
28 items (11%)
🚬
Wall of Shame in-app
Active Bounty
Coca-Cola
Cleaning up their reputation
$0.25
per verified Coke product pickup
Budget remaining
$4,230 / $10,000
Requirements
✅ Level 5+ (anti-fraud)
✅ GPS-tagged photo
✅ AI brand match verified
✅ One claim per location per day
Brand bounty detail

The outreach playbook

Don't pitch bounties cold. Build the data first, then approach with evidence.

1
Build the data (months 1-4)
Get 500+ users picking litter. Accumulate brand-tagged data across multiple cities. The Wall of Shame populates itself. You now have ammunition.
2
Publish the data publicly
City-level "Litter Report Cards" on the website. Share on social media. Tag brands. Local news picks it up. "Coca-Cola is Dickson's biggest litterer" is a headline that writes itself. This is free marketing AND pressure on brands.
3
Approach brand sustainability teams
Email their CSR / sustainability department. The pitch: "We have photographic proof of your litter footprint in [X] cities. We've built a bounty system that pays people to clean it up. You fund the bounty, we handle the logistics, and you get to say you're actively cleaning up your products." Attach the city report card.
4
Offer the alternative
If they don't engage: "We're publishing monthly brand litter rankings. Reporters are already covering the data. A bounty program lets you control the narrative -- 'Brand X is paying to clean up.' Without it, the data speaks for itself."

What the pitch email looks like

Revenue per brand

💰 The math
If Coca-Cola funds a $10,000/quarter bounty at $0.25/pickup:
• 40,000 Coke products cleaned up per quarter
• LitterMap takes 20% platform fee = $2,000/quarter revenue
• Users earn $8,000 total (split across hundreds of pickers)
• Coca-Cola gets: verified cleanup data, PR story, and reduced Wall of Shame ranking

5 brands at this level = $40,000/year from bounties alone. This is before municipal revenue.
05 / Payouts

How money flows from brands to users

Stripe Connect Express handles the hard parts: KYC, 1099s, bank transfers. LitterMap is the marketplace platform. Users are the service providers.

Brand funds bounty
Held in Stripe escrow
User snaps branded litter
AI verifies brand match
Anti-fraud check
Payout to user's bank

Stripe Connect Express

This is the same system Uber, DoorDash, and Etsy use. You are the "platform." Users are "connected accounts." Stripe handles identity verification, tax forms, and bank payouts.

User onboarding
When a user hits Level 5 and wants to claim bounties, they go through Stripe's hosted onboarding: name, address, SSN (last 4), bank account. Takes 2 minutes. Stripe handles all KYC/AML compliance.
Payout timing
Bounties accumulate during the week. Stripe auto-pays to user's bank account every Friday. Minimum payout: $5. Users see pending/paid amounts in the app's earnings tab.
Platform fee
LitterMap takes 20% of each bounty. Brand pays $0.25, user gets $0.20, LitterMap keeps $0.05. Plus Stripe's 0.25% + $0.25 per payout (absorbed by the platform, not the user).
Tax compliance
Stripe automatically generates and files 1099-K forms for users who earn $600+ in a calendar year. LitterMap doesn't touch tax paperwork. This is why Stripe Connect exists.

Anti-fraud system

When real money is involved, people will try to game the system. Multiple layers of defense:

LayerWhat it catchesHow
Level gate (L5+)Drive-by account creationMust earn 500+ XP with legitimate picks before claiming bounties
GPS cooldownSame-spot farmingCan't claim two bounties within 100m in the same hour
Photo hashDuplicate photo resubmissionPerceptual hash comparison against all prior photos
AI verificationNon-litter photosVision model confirms the photo actually contains litter of the claimed type and brand
Rate limitingSuperhuman picking speedMax 50 bounty claims per day. Flagged for review above 30.
Peer review (L26+)AI missesHigh-level users validate flagged picks. Consensus of 3 needed.
06 / Safety

Keeping people alive

The biggest liability: someone walks into traffic while snapping litter. This is the Pokemon Go lesson. Every design decision must account for it.

🚗
Road proximity warning
GPS + map data detects when user is near a road. Camera screen shows a persistent "Watch for traffic" banner. Speed detection: if user is moving > 15mph, the camera disables with "Pull over first."
🌙
Night mode lockout
Between sunset and sunrise (based on GPS coordinates), the app shows a safety warning before allowing snaps. No bounties claimable after dark. XP still earned, but no money incentive to pick litter in the dark.
⚠️
Highway geofence
GPS near highway/interstate = hard lockout. "This area is too dangerous for picking. Stay safe." No XP, no bounties. Uses road classification data from OpenStreetMap.
📋
Onboarding safety pledge
First-time users must acknowledge safety rules before first snap: never pick from roads, never pick at night, never pick near traffic, you are responsible for your own safety. Stored as a signed agreement.
⚠️
Stay Safe
You're near a busy road. Please move to a sidewalk or safe area before snapping litter.
I'm in a safe spot

Legal protection

🔴 The Pokemon Go lesson
Niantic faced lawsuits when players trespassed or got injured. Their defense: the game doesn't tell you to go to specific places, and ToS disclaims liability. LitterMap's model is safer because: (1) users look DOWN at litter, not at their phone screen, (2) there's no real-time competitive pressure to rush somewhere, (3) bounties are brand-wide, not location-specific. Still: safety UI is non-negotiable from day one.
07 / Municipal Revenue

Selling data to cities

Cities spend millions on litter cleanup with zero data on where it's worst. LitterMap gives them heatmaps, trends, and hotspot alerts for a fraction of one cleanup crew's salary.

Municipal Dashboard
Dickson, TN
March 2027
1,247
Items this month
-12%
vs last month
TOP HOTSPOTS
1. Main St & Church 187
2. Walmart parking lot 134
3. Highway 46 exit ramp 98
LITTER BY TYPE
Bottles 34% Wrappers 22% Cigarettes 19% Cans 15%
Municipal dashboard

Pricing model

TierWhat they getPrice
FreePublic Wall of Shame data for their city$0
StarterMonthly PDF report (hotspots, trends, brand breakdown)$200/mo
ProLive dashboard, API access, custom alerts, heatmap overlays$500/mo
EnterpriseMulti-city, custom integrations, dedicated support$1,500/mo
🏛️ The sales motion
Target: city public works directors and sustainability coordinators. Lead with the free data. "Your city's litter hotspot map is live -- here's what it shows." Once they see value, upsell to the dashboard. Municipal sales cycles are long (3-6 months) but sticky -- cities don't churn. 10 cities at Pro tier = $60,000/year recurring.
08 / Growth

How to get to 10,000 users

Three growth engines, each feeding the next. Local first, then regional, then viral.

1
Seed: Dickson + Nashville (months 1-3)
Target: 500 users. Post in local Facebook groups, Reddit (r/Nashville, r/ZeroWaste, r/environment). Partner with 2-3 local cleanup groups. Get covered in the Dickson Herald and Nashville Scene. Mitchell's Tare store as a physical pickup point ("download LitterMap" sign in-store).

Key metric: 500 email signups before heavy coding. If you can't get 500 people interested in Dickson/Nashville, the concept needs rethinking.
2
Amplify: Share cards + city competition (months 3-6)
Target: 2,000 users. Auto-generated share cards at every milestone (100 picks, new level, streak record). Users post these to Instagram/TikTok/Snapchat. City leaderboards pit Nashville vs. Memphis vs. Knoxville. City pride drives organic recruitment. Partner with college environmental clubs (Vanderbilt, UT, MTSU).
3
Viral: Wall of Shame goes public (months 4-8)
Target: 10,000 users. Monthly "Litter Report Cards" published on the website and social media. Tag brands. Local news covers it. Environmental journalists pick it up. The data is genuinely newsworthy -- no one else has this. Each news story drives thousands of downloads. Reddit posts like "This app tracks which brands produce the most litter" go viral in r/mildlyinteresting.
4
Scale: Bounties + App Store (months 6-12)
Target: 50,000 users. Brand bounties mean users earn real money. "Get paid to pick up trash" is an irresistible TikTok hook. App Store presence brings discoverability. Team challenges get schools and organizations onboard (each team member = new install). Featured in App Store "Earth Day" collection.

The viral loop

User hits milestone
Auto-generated share card
Posts to Instagram/TikTok
Friends see it, download app
New user hits milestone...
09 / Revenue

How it all makes money

Four revenue streams. Brand bounties first, municipal SaaS second, data licensing third, sponsored challenges fourth.

Revenue StreamWhenYear 1 TargetYear 2 Target
Brand bounty platform fee (20%)Month 6+$10,000$80,000
Municipal SaaS subscriptionsMonth 8+$6,000$60,000
Data licensing (aggregated, anonymized)Year 2$0$25,000
Sponsored cleanup challengesMonth 9+$4,000$20,000
Total$20,000$185,000
$0
Cost to users
20%
Platform take rate
~$3K
Build cost (Claude)
~$50
Monthly infra (early)
10 / Timeline

The 12-month plan

What to build and when. Validation before features. Revenue before scale.

M1
Validate Now
Landing page with email capture. Post everywhere. Talk to 3 municipalities. Target: 500 signups in 30 days. Apply for Stripe Connect (takes weeks to approve).
M2
Ship the game
Snapchat UI redesign. User accounts (Supabase Auth). Server-side data (beyond D1 to Supabase+PostGIS). Social feed. City leaderboards. Share cards. Invite first 100 users.
M3
Polish + grow
Bug fixes from real users. Improve AI classification accuracy. Add territory system. Push to 500 active users. Start generating Wall of Shame data.
M4
App Store + first data
Capacitor wrap for iOS/Android. App Store submission. Publish first city litter reports. Start municipal outreach. 1,000 users.
M5-6
Brand bounties go live
Stripe Connect integration. Anti-fraud system. First brand deal (start with a local brand, not Coca-Cola). Self-fund $500 in bounties to prove the loop works. First user payout.
M7-9
Municipal SaaS + brand outreach
Build the municipal dashboard. Close first city deal. Approach national brands with multi-city data. Team challenges go live. 5,000 users.
M10-12
Scale
Multiple brand bounties running. 3-5 municipal customers. National press from Wall of Shame data. 10,000+ users. Evaluate: expand to more states, hire first person, or keep solo.
11 / Moat

Why someone can't just copy this

The app is simple. The moat is the data.

📊
Data network effect
Every photo makes the map richer, which attracts more users, which creates more data. A competitor starting from zero has no data to show cities or brands. You have millions of geotagged, brand-identified litter photos.
🏙️
Municipal contracts
Once a city is paying for your dashboard, they're not switching. Government procurement is slow to adopt AND slow to leave. Sticky by nature.
👥
User investment
Users have levels, badges, streaks, territories. Starting over on a competitor means losing all progress. The switching cost is emotional, not financial.
🔥
Brand reputation data
The Wall of Shame data is proprietary. No one else has "Coca-Cola produces 35% of litter in Nashville" backed by photographic evidence. This is leverage no competitor can replicate without matching your user base.
12 / Risks

What could go wrong

RiskSeverityMitigation
Nobody downloads itHighValidate with 500 signups before building. If can't get 500 in 30 days, concept needs rethinking
User gets injuredHighSafety UI from day one, ToS liability disclaimer, general liability insurance, no location-specific bounties
Brands ignore the Wall of ShameMediumPartner with environmental journalists. Public data + media pressure is harder to ignore than a cold email
Fraud on bountiesMediumMulti-layer anti-fraud (level gate, GPS cooldown, photo hash, AI verification, peer review). Start small, iterate
Mitchell's time (running Tare full-time)Medium15-20 hrs/week max. Side quest rules apply. Don't let it compete with Tare operations
Stripe Connect rejectionLowApply early (month 1). LitterMap's model (paying service providers) is standard for Connect. Not a novel use case
Apple App Store rejectionLowAdd at least one native feature to avoid "web wrapper" rejection. Push notifications are the easiest
Legal challenge from brandsLowData is factual and aggregated. "35% of litter is Coca-Cola" is a verifiable statement, not defamation. Get a legal review before publishing
13 / Current State

What exists today

Done ✅
Camera capture + AI classification
GPS tagging
XP/level system
Daily streak + bonus XP
Feed, map, and stats views
D1 backend (data persists)
Bidirectional sync
JSON export
Deployed on Cloudflare Workers
Build today / this week
Snapchat UI redesign
PWA manifest + service worker
Landing page + email capture
Privacy policy + terms
Share card generation
Proper app icon + splash screen
Build next month
User accounts (Supabase Auth)
Social feed
City leaderboards
Territory system
Badge/achievement system
Wall of Shame page
🗑️

LitterMap

Built by Mitchell Wilson. Powered by Claude Code.

Internal strategy document. April 2026.