Skip to content
prod e051e98
Browse

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.

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]

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.

  1. 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.

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.

  1. 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.

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).

  1. 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.

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.

  1. Create the products/prices, then wire the webhook handlers. Listen for checkout.session.completed, customer.subscription.deleted, and invoice.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.

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.

  1. Fire the three events and add the social tags.

    • sign_up, trial_started, and purchase events register, and a shared link previews with the correct OG/Twitter card.

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 metasign_up/trial_started/purchase fire; OG/Twitter cards preview.