You built the landing page, wired up Stripe, launched. And then... silence. Zero purchases. Was the page broken? Did anyone even see the price? Did they click anything? Without custom events, PostHog tells you "12 people visited /lifetime." With them, it tells you "12 visited, 8 scrolled to the CTA, 3 clicked 'See the demo,' 1 started checkout, 0 completed purchase." Now you know the leak is between checkout-start and payment -- not the page itself. Here's how I set this up for a real $59 lifetime deal, running Next.js 16 on Vercel. The events that matter Before writing any code, I mapped the funnel on paper. Every SaaS purchase page has the same shape: Page load -> Scroll past fold -> Engage with content -> Click CTA -> Start checkout -> Complete purchase Enter fullscreen mode Exit fullscreen mode Each transition is a place users leak out.…