Curb.

Launch board

Updated 19 Jul 2026 · by Claude (overnight truth-audit)
0%

Your next 3 moves

  1. Stripe sandbox: create products + 9 prices, set the STRIPE_PRICE_* secrets — names in .dev.vars.example. Unblocks billing, the only queued deploy — same sitting, confirm the Stripe webhook endpoint URL, then drop the /webhooks/* carve-out.
  2. Dogfood proof post: real IG post (+ now-bridged GBP) on your own org — screen-record it. Becomes the hero Reel.
  3. Claim the remaining @withcurb handles — X · TikTok · YouTube · LinkedIn · Threads · FB, bio pack ready → — then read the 3 broadcast drafts. IG already claimed and live.
Done Doing Next Waiting Gate-open Later You = only Luke can do it

🌐 Website & landing

withcurb.com public face · vault: curb-landing-legal

  • DoneMain landing page + 4 product pages — LIVE on prodYour new marketing site merged + deployed 18 Jul, all pages 200, new pricing showing
  • DonePRICING LOCKED (18 Jul): Stand $10 solo · Corner $29 · Block $59 ⭐ · Strip $99iOS = web×1.3 · annual pay-10-get-12 · add-ons unchanged · decision page →
  • DoneWaitlist express-consent checkbox + consent logging — LIVEUnticked by default, logs time + consent-text version, gates the marketing audience (AU Spam Act)
  • Donewithcurb.com verified in Google Search ConsoleSite-verification TXT live on DNS — confirmed 18 Jul
  • DonePrivacy · Terms · Data-deletion pages liveReview-grade; checked 200 on prod

⚙️ Web app

~/Projects/project-social · vault: with-curb

  • DoneAll 4 products live on prod behind the waitlist gate
  • DoneSecurity: gate, dev-backdoor killed, re-audit = GOGate-blockers re-verified closed 17 Jul
  • DoneMeta post-approval deploy — IG publish path live5 branches merged, migrations 0052–0055, smoke green
  • DoneCron sender bug — verified already fixed on mainLaunch-cleanup session: code honours FROM_EMAIL, live on prod
  • DoneProd-secrets audit + security fast-follows shippedOrg-guard on GBP/FB/Bing runners + zod on queue/review — prod 692c141b, 1049 tests green
  • Donecurbsocials.com → withcurb.com 301s — LIVE on prodDeployed 18 Jul, smoke-verified (path-preserving, webhook/OAuth carve-outs intact)
  • DoneShipped 18 Jul: origin-guard CSRF hardening · email brand template + ABN footers · queue authz manager+ · waitlist consent checkbox4 branches merged, migration 0059, 1100 tests green, prod smoked
  • DoneLast open security item closed — IG comment-reply authz + 4 rehearsal P3s fixedMerged to main `f9b8118` 18 Jul (undeployed, queued for next deploy)
  • NextSMS ungate: one-way, quota 0 ($15/100 pack unlocks)Queue-authz half SHIPPED 18 Jul · SMS half ships with the Mobile Message window · template: "Shop name: message (no-reply)" + opt-out link on marketing
  • NextFinal prod smoke test before gate-open

🛂 Approvals (external)

Meta · Google · vault: curb-meta-app-review, curb-launch-readiness

  • DoneMeta App Review — APPROVED 17 Jul 🎉All 3 IG permissions after a 23-day review
  • DoneMeta app PUBLISHED — Curb Socials is LIVE 🎉18 Jul: Publish badge green, zero required actions — real customers can connect Instagram
  • DoneConsole URL migration complete — Meta + Google cleaned, carve-outs dropped18 Jul: IG webhook live on withcurb · curbsocials purged from both OAuth clients · code shipped, 1119 tests · /webhooks/* stays until Stripe endpoint confirmed
  • DoneChannel truth check17 Jul: IG perms all "Ready to publish" · FB posting NOT granted · GBP quota still 0 → launch copy claims Instagram only
  • DoneGoogle Business Profile API access (Gate 1) — BRIDGED 18 JulGBP now live at 300 QPM via the allowlisted Cornerstone Cloud project (683391900680) — e2e verified, 6 locations loading, no more 429s. Curb's own project's appeal (case 3-5341000041476) stays open in parallel, a win there is a bonus not required.
  • DoneGoogle appeals filed — email 17 Jul, form 18 JulEmail bounced ("PII-only channel") → proper form submitted with the same ask
  • LaterGoogle OAuth verification (Gate 2) — reserved, not submittedPrereq (dogfood GBP post) now unblocked, but the submit itself stays deliberately parked — reclassify scope, logo, demo video, submit, on your call
  • LaterMeta cleanup: rotate reviewer login + remove temp allowlistYour call: no rush, test accounts only

📱 iOS & App Store Connect

~/Projects/curb-socials-ios · vault: curb-ios

  • DoneApp built — all 4 products + parity waves, mobile auth + email→app sign-in
  • DoneApple company account + D-U-N-S — sortedYour CAGL company team 3272YE679N holds Curb; no enrolment or conversion needed
  • DoneTestFlight — internal builds live on your iPhoneBuilds 2+3 uploaded 7 Jul, fully autonomous via the CAGL API key
  • DoneParity burn-down complete — TestFlight build 4 on your phoneTonight: 4 branches merged, prod deployed, build 4 uploaded on your go
  • DoingReview form live with you — walkthrough + v2 mockup (46 screens) sign-offHard rule: no Swift on the redesign until you approve — then build Phases 0–4
  • NextIAP from launch at +30% markup (your form call)UNBLOCKED — tiers locked: $12.99 / $37.99 / $76.99 / $128.99 · StoreKit + SBP enrolment + Stripe entitlement sync · ready for a session
  • NextApp Store public-submission packReviewer owner demo login · prod OAuth · screenshots · App Privacy label · category Business · v1.0.0
  • LaterPush notifications (APNs)Not a beta blocker

💳 Payments

Stripe · vault: curb-pricing

  • DoneStripe webhooks hardened — idempotent + Basil-compatible
  • DoneBilling code built + reviewed — checkout, $1×3 intro, gating, up/downgrade1112 tests · price IDs env-driven · on branch billing-sandbox (unmerged) · dry-run waits on Stripe sandbox products + 9 STRIPE_PRICE_* secrets (still absent 19 Jul)
  • YouActivate Stripe live + create the pricesPricing locked → click-list ready (4 products, 9 secrets) · sandbox first, live at gate-open · same sitting: confirm Stripe's webhook endpoint URL is on withcurb (then the last carve-out drops)
  • Gate-openBilling on + $1×3 intro offer liveShips with the public launch, not before

📣 Comms & marketing

vault: curb-comms-lifecycle, curb-socials-launch

  • DoneEmail infra: Resend Pro + verified sender send.withcurb.com
  • YouClaim @withcurb handles — X · TikTok · YouTube · LinkedIn · Threads · FB page · bio pack ready →Handles + fallbacks, bios per char limit, art pointers, first pinned post — IG already yours
  • NextDogfood proof: post once → live on your own IG, screen-record itUNBLOCKED — app is Live on Meta; do it any time · the capture becomes the hero Reel
  • NextFounding cohort: approve comp shops + send founding-invite email6-months-free draft ready for your review
  • NextIG warm-up: 12-tile grid from the 107 built assets + teasersAll CTAs say "join the waitlist" while the gate is closed
  • DoneResend Audiences verified + 21-email transactional audit + 3 broadcast draftsTonight's comms session — nothing sent, nothing loaded into Resend
  • DoneComms decisions locked + sender livehello@mail.withcurb.com VERIFIED in Resend (DKIM+SPF) · reply-to hello@withcurb.com · "Follow @withcurb" CTA · tagline "Run it all." final
  • YouRead the 3 broadcast drafts before anything sendswaitlist-welcome · founding-invite · launch-announcement (stays on HOLD till gate-open)
  • DoneEmail polish SHIPPED — ABN footer on all 21 types, shared brand template, sign-offs unifiedWent out in the 18 Jul integration deploy
  • NextEmail brand-consistency pass — built, branch ready to mergeSession complete 18 Jul evening; awaiting merge + deploy
  • Gate-openLaunch-announcement broadcast

🎫 Help centre & support

vault: curb-support-desk, curb-admin-console

  • DoneHelp centre + ticket system live on withcurb.comShipped 17 Jul
  • DoneAdmin/ops console at /admin/consoleWaitlist approvals, activation funnel, health, view-as
  • DoneRehearsal test data deleted off prod"Rehearsal Shop One" org + 2 waitlist rows removed 18 Jul · rollback bookmark kept

🎨 Design & QA

vault: curb-design-qa

  • DoneMarketing-surface QA pass — footers, contrast, funnel CTAs
  • DoneQA pass + fixes built — 16 commits pushedKanban cards fixed, 10 QA fixes, Queue Sent-tab dead-end, empty states, onboarding guard, phantom test columns purged
  • DoneMarketing WIP committed — merge train clearedYour new pages merged + deployed; design-qa and domain-migration both shipped behind it
  • DoneMagic-link fix: scanner-proof verify + visible expired-link messageShipped with the design-qa batch

🚀 Gate-open (launch day)

Your call — nothing here is scheduled · vault: curb-launch-tracker

  • Gate-openOpen the gate: public signup replaces the waitlist
  • Gate-open"Start free" CTAs + public pricing go live
  • Gate-openLaunch email to the waitlist
  • Gate-openReveal week on IG: hero Reel + proof posts