3 · Business & legal readiness
Objective — make the business side real, not a placeholder: a customer needs something to land on, a way to pay, and the legal pages that make billing legitimate, because technical green is necessary but not sufficient.
Background
Section titled “Background”A customer also needs something to land on, a way to pay, and the legal pages that make billing legitimate. Build and test the entire flow on test keys first — live keys are the very last switch.
flowchart LR Land[Landing page] --> Pay[Test-mode checkout] Pay --> Legal[Terms · Privacy · Refund] Legal --> Live[Switch live keys last]1. Build the landing page
Section titled “1. Build the landing page”A real entry point (a route in the app, a marketing site, or a one-pager) covering the seven sections: hero with value proposition, problem, top-three solution, how-it-works, pricing, social proof, and a footer CTA. Unauthenticated visitors see it; authenticated users redirect to the dashboard.
-
Publish the landing page with all seven sections and the authenticated-user redirect.
- ✅ Unauthenticated visitors see the landing page; authenticated users redirect to the dashboard.
2. Publish legal pages
Section titled “2. Publish legal pages”Privacy Policy at /privacy, Terms of Service at /terms, Cookie Policy (if EU/UK traffic), Refund / cancellation policy (if selling), plus a working contact route. Cross-check the full legal bar from Phase 10 sign-off and Phase 7 legal — don’t drop pages the earlier gate required.
-
Wire
/privacy,/terms,/cookies(or generator-hosted cookie policy),/refund(if selling), and a contact route, all reachable from the footer.- ✅ Legal pages and the contact route load and are linked in the footer; cookie + refund pages match the Phase 10 bar when applicable.
3. Wire transactional email
Section titled “3. Wire transactional email”Set the from-address and from-name, then wire the core templates: welcome, payment succeeded, payment failed, trial-expiring, and re-engagement. Confirm each actually delivers (check SPF/DKIM/DMARC pass).
-
Send a test of each core template and confirm authentication passes.
- ✅ Welcome, payment-succeeded, payment-failed, trial-expiring, and re-engagement emails deliver with SPF/DKIM/DMARC passing.
4. Configure pricing & payment
Section titled “4. Configure pricing & payment”Choose a model (a free tier plus a premium trial is the safe default), create the products and prices in the payment provider, wire the billing integration and webhook handlers (checkout.session.completed, customer.subscription.deleted, invoice.payment_failed), and add the trial/subscription gating middleware. Test the full path with the provider’s test cards and webhook forwarder before switching to live keys.
-
Create the products/prices, then wire the webhook handlers. Listen for
checkout.session.completed,customer.subscription.deleted, andinvoice.payment_failed, and add the trial/subscription gating middleware.- ✅ The full path clears with the provider’s test cards and webhook forwarder, and gating middleware enforces the trial/subscription.
5. Install analytics & social meta
Section titled “5. Install analytics & social meta”Install analytics with sign_up, trial_started, and purchase events, and add Open Graph + Twitter Card tags (with a 1200×630 image) so shared links preview correctly.
-
Fire the three events and add the social tags.
- ✅
sign_up,trial_started, andpurchaseevents register, and a shared link previews with the correct OG/Twitter card.
- ✅
Checklist
Section titled “Checklist”Do not mark this step done until every box below is checked.
- 🤖 Landing page — seven sections live; authenticated users redirect to the dashboard.
- 👤 Legal pages —
/privacy,/terms, and contact route live and footer-linked. - 🤖 Transactional email — all five core templates deliver; SPF/DKIM/DMARC pass.
- 🔀 Pricing & payment — products/prices created (👤), integration + webhooks wired and tested.
- 🤖 Analytics & social meta —
sign_up/trial_started/purchasefire; OG/Twitter cards preview.