On this page
totalventures.io used to be a parallax mountain hero with two CTAs and no funnel. As of today it is a four-tier offer ladder — free Launch Checklist, $19 Builder’s Playbook bundle, $499 Strategy Session, custom Partner With Us — wired end to end with Stripe, Resend, Cal.com, and Firebase. This is the shipping log.
The order we built things
Editorial home page first. Replaced the parallax hero with a tight tagline (three brands, one operator, AI as the team), a four-card resources strip, and a centered Studio Update signup. No animations, no gradient, no stock photography. The type carries the brand.
/posts blog second. Added the shared blogPost schema to Sanity, built /posts and /posts/[slug], wired a Latest Writing strip on the home page that conditionally renders only when posts exist. The dispatch you are reading is the first one.
Funnel pages third. Three landing pages — Launch Checklist (lead magnet), Builder’s Playbook ($19 paid offer), Strategy Session ($499 booking) — plus a /thank-you page that fires the GA4 purchase event. All four route through the same editorial design system.
Email infrastructure fourth. Four React Email templates — Lead Magnet Welcome, Purchase Confirmation, Abandoned Cart, generic SequenceStepEmail — plus an 11-step drip registry covering lead-magnet nurture, newsletter sequence, post-purchase tips, and consulting follow-up. Render via @react-email/render, send via Resend.
Stripe + GA4 fifth. /api/checkout creates a Stripe Checkout session with ad-hoc price_data (no Stripe products to maintain). /api/stripe/webhook listens for checkout.session.completed and checkout.session.expired — the first sends the purchase email with download links, the second sends the abandoned-cart recovery. GA4 events fire for generate_lead, begin_checkout, and purchase through GTM.
PDFs sixth. Generated 8 PDFs total — the Studio Launch Checklist (12 pages, lead magnet) and the Builder’s Playbook bundle (7 PDFs, ~85 pages). All voice-loaded from platform/brand/voice.md and lint-clean against TV’s banned-words list at generation time.
What we cut
A custom multi-step booking flow with Cal.com slots fetching, custom payment, and an attendee-info form. We have one on Justin’s site; replicating it on TV would have been a half-day of code for a marginal UX win. Cal.com’s embed iframe ships in five minutes and works.
Stripe Products. The Builder’s Playbook is a one-time purchase; Stripe Checkout supports ad-hoc price_data so we never had to create a Stripe Product. One less surface to keep in sync.
Firebase Storage with public ACLs. Uniform-bucket-access enforces signed URLs only, which would have meant rotating the lead-magnet link every seven days. We shipped the PDF as a static asset under /public for v1; the upload script is staged for when we want signed-URL gating.
What is left
Three manual config steps before the funnel actually fires: register the Stripe webhook, create a Cal.com event for the Strategy Session, and pick a drip-sequence trigger (Resend automation versus a cron-based runner like the one Pregnancy Power Hour uses). After that, the next test is a $1 Stripe transaction end to end.
If you want the recipe, the Builder’s Playbook bundle is the seven-PDF version. The free Launch Checklist is the framework version. Both link below.
Weekly Briefing
The studio briefing.
What we’re building across the portfolio, every Monday.
Written by
Total Ventures
Multi-brand product studio


