Lanes
One lane at a time — the goal, the critical path, and the current wave of blockers.
Approve: Billing & PaymentsTo do · blockerApply requireTier middleware to all Pro-only routesTo doWire UI feature gates with the Gate componentTo doAdd billing route testsTo doConfirm pricing-page numbers match Stripe productsTo doConfirm STRIPE_WEBHOOK_SIGNING_SECRET set in prodDoneTest Stripe test vs live key separationDoneDecide: remove in-app checkout links, or get Apple's external-purchase entitlementTo doImplement the upgrade-path decision on iOS and AndroidTo doBuild the Android subscription and billing surfaceTo doPre-downgrade confirmation modalDoneShow current subscription state in /settings/subscriptionDoneBuild invoice history pageTo doWire dunning email on invoice.payment_failedDoneAnnual vs monthly pricing toggleTo doTighten Stripe replay tolerance from 300s to 60sDone
Wave
Billing & Payments
Depends on Auth and Backend API. Revenue path — the paywall blocker lives here.
TacTile › Launch TacTile › Backend & Infrastructure › Billing & Payments
6/16 done10 open1 open blocker
Selected taskclear
Confirm pricing-page numbers match Stripe products
To doOwner · Vivt_79779129
Unlocks 1Approve: Billing & Payments
Show the prompt
To doIn progressDoneBlockedPick a wave on the left · tap a task to expand it