Execution Plan — August 2026 to January 2027
Created: August 3, 2026 · Owner: Founder (solo) · Horizon: 26 weeksThis page is the week-by-week operating plan. It supersedes the timeline
language in Launch Readiness Overview
and the phase table in Roadmap, both of which describe
what ships. This page describes when and in what order.
The three dates
Everything below serves those three dates. If a task does not move one of them,
it is not in this plan.
Standing decisions this plan assumes
Decided August 3, 2026. See Pricing Strategy for the full model of record.- Hard paywall, full price, no trial and no intro offer. Pro is 99.99/yr. The point is to learn whether the product is worth full price, not to buy conversions with a discount.
- The website is the free tier.
thisiswhyimhigh.comserves 2,525 strains publicly. The app does not duplicate a free experience. - Guest access in the app is browse-only. Strain browse, search, detail, High Families, music, capped label scanner. Nothing is saved. No AI.
- Everything personal or AI-powered is Pro. Stash, orders, collection, notebooks, stats, Gmail, imports, dispensaries, rankings, badges.
- Unsubscribed accounts have 30-day data retention. Lapsed subscribers have 12 months, read-only.
- iOS only. No Android, no web app, no Safari extension in this window.
Weekly operating rhythm
One shipping lane per week. The plan collapses if this is not respected.Phase 1 — Production Ready (August, W1–W4)
Goal: a production build that takes real money and delivers real value. Exit gate: a sandbox purchase completes, a notebook generates in a production-profile build, and the paywall is legally compliant.W1 — Aug 3: Money plumbing
The longest external lead times start this week. Nothing else matters if these are not moving.- Enroll in the App Store Small Business Program (15% vs 30% commission)
- Complete App Store Connect: Paid Apps agreement, banking, tax forms
- Create the App Store Connect app record (bundle
com.highiq.app) - Create subscription products in one subscription group so users can
switch monthly ↔ annual without double-paying:
highiq_pro_monthly(99.99) - Link App Store Connect ↔ RevenueCat; configure the
proentitlement and thedefaultoffering - Google OAuth: open the Cloud Console, confirm which project owns the
client behind Clerk’s Google connection, and determine exactly what the
gmail.readonlyrestricted-scope verification requires and whether the security assessment can start before App Store listing - Retire the
highiq_historical_importSKU — Historical Import is Pro-included, not a separate purchase
W2 — Aug 10: Re-tier to the hard paywall
-
apps/mobile/src/_config/featureFlags.ts— move torequiredTier: 'pro':stash,favorites,addStrain,collection,profile,preferences,rankings,badges,historicalImport - Confirm guest-only (
requiredAuth: false):strainBrowsing,strainSearch,strainDetail,highFamily,music,labelScanner - Update
useAccessPolicytests for the new tier map - Update
docs/testing/feature-flag-qa-matrix.md - Implement 30-day retention for never-subscribed accounts (warn at day 23, export offered) and 12-month read-only retention for lapsed subscribers
- Verify a guest cannot reach any Pro route by direct deep link
W3 — Aug 17: The paywall
The highest-stakes screen in the app.SubscriptionBillingScreen is a billing
screen; this is a sales screen. Different job, different surface.
- Build the post-onboarding paywall: value framing, annual pre-selected and shown as “$8.33/month, billed annually”, monthly secondary
- Apple-required disclosures on the paywall itself — subscription length, price per period, auto-renewal terms, and functional links to Terms of Use (EULA) and Privacy Policy
- Restore Purchases control on the paywall, not only in settings
- Route every Pro-gated surface to this paywall instead of a generic lock
- Onboarding delivers one real personal moment before the ask — a High Family result or a label scan, something about them
- Lapsed-subscriber recovery state (data visible, read-only, resubscribe CTA)
W4 — Aug 24: Turn on notebooks and prove the money
- Set
EXPO_PUBLIC_NOTEBOOK_GENERATION_ACTIONS_ENABLED=truefor the production profile; keepnotebookOrderGenerationandnotebookStashGenerationon, every companion executor off - Certify order → notebook → readable result on a real device, including the failure states: unknown strains, partial orders, failed research, cancel mid-generation, background/foreground, cold reopen (see Notebook Launch Runbook Phase 7)
- Sandbox purchase → restore → RevenueCat webhook → Convex entitlement sync, recorded as evidence
- Verify the remote feature-flag kill switch works on a production bundle
(Convex
featureFlagOverrides→ live within seconds) - Revyl smoke to green (last recorded run: 7/8)
- Sentry alerting configured for production crashes
- Build the invite-gate mechanism (see below)
Phase 2 — Friends & Family (September, W5–W9)
Goal: 15–30 real humans use the app; you fix what embarrasses you. Exit gate: no embarrassing gaps remain, and at least one person who is not obligated to be nice says the notebook was worth money.The invite-gate approach
You are releasing to the App Store in September rather than using TestFlight, because non-technical friends bounce off TestFlight. That works, with rules:- The app ships live but gated: a valid invite code is required to create an account. Guest browse stays open so the app is never a blank wall.
- App Review notes must contain a working invite code and a seeded
production reviewer account with Pro granted via a RevenueCat promotional
entitlement. Do not use
+clerk_testcredentials — production shipspk_live_...keys and reviewers would be unable to sign in. - Friends & family get Pro via promotional entitlements, not a free tier. There is no free tier to give them.
- This is not launch day. No marketing, no announcement, no press. The app being purchasable in September is a distribution mechanism, not a launch.
The hidden benefit: submitting in September means the App Review rejection
cycle happens on a week that does not matter. A first-time cannabis app can
reasonably expect one rejection round. Absorbing that in September protects
the October marketing date.
W5 — Aug 31: Submit
- Screenshots (5–6 frames: track → insights → notebook → database → Professor High) and a 15–30s app preview video from the video pipeline
- App Store metadata: title, subtitle, keyword field
(keyword research process:
docs/planning/growth/[plan]-growth-marketing-playbook-jul03.md§6.1) - Age rating 17+, category Lifestyle
- App Store privacy labels — must match the actual retention policy
- Review notes: education/journaling/tracking only, no commerce, no dispensary ordering; invite code; reviewer account credentials
- Support email live and monitored
- Submit
W6 — Sep 7: Review loop + first invites
- Respond to any App Review rejection within 24 hours
- Once approved: invite the first 5 people. Watch them use it in person or on a call. Do not coach them. Write down every hesitation.
- Fix whatever the first 5 stumble on, same week
W7 — Sep 14: Widen to 15–30
- Second invite wave
- Set up the feedback channel (a form, a group chat — anything with a persistent record)
- Daily triage of feedback into: ship now / v1.1 / never
W8 — Sep 21: Fix and polish
- Work the feedback list in order of how many people hit it
- Ship via EAS Update (OTA) where possible to avoid review round-trips
- Confirm at least one full paid journey by someone who is not you: purchase → notebook → second session
W9 — Sep 28: Launch prep
- GA4 funnel events, UTM convention, App Store campaign links, RevenueCat attribution — all live and verified before traffic arrives
- Email provider live with a 5-email welcome sequence (you already have addresses from Apple/Google sign-in)
- Launch content batch: 15–20 TikTok videos queued
- Reddit accounts have karma and comment history in 2–3 subs
- Decide the invite-gate removal date
Phase 3 — Public Launch (October, W10–W13)
Goal: the invite gate comes off and strangers start paying. Exit gate: 10+ paying subscribers who have never met you.W10 — Oct 5: Remove the gate
- Flip the invite requirement off (remote feature flag, not an app release)
- Verify the full cold-start path: install → guest browse → onboarding → paywall → purchase → notebook
- Launch email to the list
- Launch video series across TikTok / Reels / Shorts
- Respond to every App Store review in week one
W11 — Oct 12: Read the funnel
- First honest read on install → account → paywall view → purchase
- First Reddit data drop (earned by six weeks of warming)
- Triage refund requests and 1-star reviews as product signal
W12 — Oct 19: First creator collabs
- 2–3 micro-creator collabs (gifted Pro, stitch/duet — no payments)
- Double down on whichever TikTok hook format is winning
W13 — Oct 26: First monthly review
- Kill-or-double-down call per channel by time-CAC
- Do not touch pricing yet — see the decision rule below
Phase 4 — Learn and Retain (November, W14–W18)
Goal: stop the leak before pouring in more traffic.W14–W15 — Nov 2 / Nov 9: v1.1 — Push notifications
Push moves here rather than v1.0 deliberately: a permission prompt fired at the wrong moment permanently caps your opt-in rate, and there is no content strategy behind it yet. The weekly email digest covers the retention job in the meantime.- APNs key in App Store Connect;
expo-notificationswired - Permission ask after a value moment, never on first open
- Three notification types only: notebook ready, weekly stash digest, restock prediction
- Target ≥50% opt-in
W16 — Nov 16: v1.1 — Share cards
- Ship the deterministic share card — your only built-in viral mechanism
- Target shares/WAU ≥5%
W17–W18 — Nov 23 / Nov 30: The first pricing decision
Four to six weeks of real purchase data now exist. Read them in this order:
Only the last row is a pricing problem. The first three look like pricing
problems and are not.
Phase 5 — Compound (December–January, W19–W26)
Goal: 100 paying subscribers and a repeatable acquisition loop.- W19–W20 (Dec 7 / Dec 14): Gmail sync + Historical Import go live the day Google verification clears — remote flag flip, no App Store release. If verification has not cleared, escalate rather than wait.
- W21–W22 (Dec 21 / Dec 28): Holiday content batch; light build weeks. Rest is a scheduled item, not a failure.
- W23–W24 (Jan 4 / Jan 11): v1.2 — the highest-signal feature request from 90 days of real users. Do not decide this now.
- W25–W26 (Jan 18 / Jan 25): Six-month review. Re-plan the next horizon against actual numbers.
Milestone targets
100 paying subscribers by January is the real goal, not 1,000. With a hard
paywall at full price, install→paid of 1–3% is the honest expectation, so
1,000 subscribers implies 35,000–100,000 installs. That is a 12–18 month
number. At 100 subscribers you can still talk to every single one, which is
worth more at this stage than the revenue.
What is deliberately not in this plan
Pre-charge checklist
Do not accept a real dollar until every line is true:- Sandbox purchase, restore, and webhook→entitlement sync all proven
- Monthly and annual live in the same subscription group
- Paywall shows price, period, auto-renewal terms, EULA and Privacy links
- Restore Purchases reachable from the paywall
- Account deletion reachable in-app
- Data export works and includes notebook records
- Retention policy disclosed in privacy policy and App Store privacy labels
- Support email live and monitored
- Sentry alerting on production crashes
- A notebook generates end-to-end in a production-profile build
- At least one person who is not you has completed the full paid journey
