Skip to content
prod 352bb92
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.

Steps at a glance:

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

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 Phase 12 production switch.

Read Zaj-PROJECT.md first so the landing URL, legal routes, billing provider state, analytics provider, and live-key cutover owner come from the current project profile. Update it after verification with policy version dates, non-secret provider IDs, test-mode status, and any human-only production/legal follow-up tracked in Zaj-BACKLOG.md.

flowchart LR
Land[Landing page] --> Pay[Test-mode checkout]
Pay --> Legal[Terms · Privacy · Refund]
Legal --> Live[Phase 12 live-key switch]

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; Phase 12 performs the production live-key switch and live charge/refund gate.

  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.
  • 🤖 No vendor name in public copy — landing page, transactional emails, social meta, and public changelog grep clean of the CodeCanyon vendor/author/marketplace name.
  • 🤖 Project state updatedZaj-PROJECT.md records landing URL, legal route URLs and policy dates, test-mode billing status, analytics/social providers, and any Zaj-BACKLOG.md human/legal/live-key follow-ups.