Agent rule
school.differentthandefault.com/ stays the full school hub (ADR-039 paths: founder, individual, institutions, partner, apply, brochure, blog). The closed-funnel 7-day workshop sales page lives at /7dayworkshop only — no exit links; every CTA is Razorpay Standard Checkout (config/workshop.json ctaMode: razorpay, product 7day-workshop). Do not replace the hub homepage with the funnel.
Status: Accepted
Context: Creatives need one convert URL; the school subdomain still needs a normal multi-offering front door. Vercel Hobby is at the 12-function cap, so create-order / verify-payment multiplex on /api/school-apply?action=create-order|verify-payment via server-lib/razorpay-api.js — do not add a new api/*.js.
Decision: Hub at /; sales funnel at /7dayworkshop with cadence + Razorpay Standard Checkout. Pricing: early bird until datesAnnounced, then full (2× early bird). Catalog in config/payments.json; 7-day amounts from config/workshop.json; Founder Ship Stack (/2dayworkshop) from config/founder-workshop.json (same checkout helper, product 2day-workshop). Cadence ~15 days; show last batch dates while next dates are unannounced.
Consequences: Set RAZORPAY_KEY_ID + RAZORPAY_KEY_SECRET in Vercel. Never expose KEY_SECRET to the frontend. When announcing a batch: set datesAnnounced: true, fill batchStarts / schedule / batchId, update page copy; checkout then charges regularPriceInr (unless earlyBirdUntil still open). Flip ctaMode to whatsapp only as emergency fallback. Current early bird: 7-day ₹3,999 (full ₹7,998) · Founder Ship Stack ₹1,999 (full ₹3,998). Last 7-day batch: 25–31 Jul 2026.