Add Stargate and Code Analysis landing pages with shared landing kit#19
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Unified .lp-* design system from the stargate/code-analysis sites (19 of 22 files were identical after prefix normalization); per-product accents come from html[data-product] token blocks. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Products dropdown now lists all four products; landing-only products hide the Docs link, Version menu, and GitHub icon and get a waitlist CTA instead. data-product theming extended in both the pre-hydration script and CSS. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
One route serves both landing pages; audiences come from RESEND_AUDIENCE_ID_STARGATE / RESEND_AUDIENCE_ID_CODE_ANALYSIS. Missing keys degrade gracefully (dev no-op, prod 503). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
zod 4.4.3 breaks nextra's Layout prop validation ('expected nonoptional,
received undefined at children'), 500ing every route. 4.3.6 is the version
main's lockfile already resolved for nextra.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Someone is attempting to deploy a commit to the FlutterTools Team on Vercel. A member of the Team first needs to authorize it. |
|
Superseded by an in-repo PR now that write access is granted. |
Adversarial review — findings & fixesReviewed the full diff against
Checked and sound: CSS scoping (landing.css ships globally but every selector is inert outside the landing routes; no docs-page leakage in either direction); port fidelity (all 8 Verified after fixes: 🤖 Generated with Claude Code |
Summary
Folds the standalone Stargate and Code Analysis product sites (previously separate Next.js repos) into fluttermix.com as
/stargateand/code-analysis, and adds both products to the FloatingNavbar products dropdown.The two source sites were near-identical twins (both ported from this repo's Remix landing page — 19 of 22 files identical after
sg-/ca-prefix normalization), so instead of copying them twice the landing pages share one unified kit:components/landing/— shared.lp-*design system (landing.css, single copy of the former 1,291-line stylesheet), motion presets, primitives (LandingButton,Wordmark,SectionHead,HighlightedCode,WaitlistForm) and 9 sections parameterized by aLandingContentconfig.components/landing/stargate/,components/landing/code-analysis/— per-product content configs, code snippets, and the only two genuinely divergent components each (HeroWindow,OutputsBento), plus a thin client wrapper.html[data-product]CSS token blocks, reusing the existing product-theming mechanism.Navbar / theming
data-producthandling extended in both the pre-hydration script (layout.jsx) andgetActiveProduct, with new accent blocks inglobals.css.--font-inter/--font-jetbrains-monovars the root layout provides.Waitlist API
One parameterized route (
/api/waitlist) serves both products with per-product Resend audiences and welcome emails. Degrades gracefully: dev no-op / prod 503 when keys are missing.New Vercel env vars to configure:
RESEND_API_KEYRESEND_AUDIENCE_ID_STARGATERESEND_AUDIENCE_ID_CODE_ANALYSISRESEND_FROM_EMAIL(optional; per-product defaults otherwise)Note on zod
zodis pinned to 4.3.6 via a pnpm override: 4.4.3 breaks nextra's Layout prop validation ("expected nonoptional, received undefined at children") and 500s every route.Verification
pnpm buildpasses;/stargateand/code-analysisprerender as static routes; pagefind indexes only docs pages (landing pages also carrydata-pagefind-ignore)./,/remix,/stargate,/code-analysis, mix/remix docs, examples); both landing pages render full section stacks with correct copy and accents.🤖 Generated with Claude Code