Skip to content

Add Stargate and Code Analysis landing pages with shared landing kit#20

Closed
gabrielrangel95 wants to merge 8 commits into
mainfrom
feat/stargate-code-analysis-landings
Closed

Add Stargate and Code Analysis landing pages with shared landing kit#20
gabrielrangel95 wants to merge 8 commits into
mainfrom
feat/stargate-code-analysis-landings

Conversation

@gabrielrangel95

Copy link
Copy Markdown
Contributor

Summary

Folds the standalone Stargate and Code Analysis product sites (previously separate Next.js repos) into fluttermix.com as /stargate and /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 a LandingContent config.
  • 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.
  • Per-product accents (violet / cyan) come from html[data-product] CSS token blocks, reusing the existing product-theming mechanism.

Navbar / theming

  • Products dropdown now lists Mix, Remix, Stargate, and Code Analysis (new entries show a text label beside their square glyph — proper wordmark assets can be swapped in later).
  • Landing-only products hide the Docs link, Version menu, and GitHub icon; a "Join waitlist" link takes the Docs slot.
  • data-product handling extended in both the pre-hydration script (layout.jsx) and getActiveProduct, with new accent blocks in globals.css.
  • Fonts need no work: both sites already consume the --font-inter / --font-jetbrains-mono vars 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_KEY
  • RESEND_AUDIENCE_ID_STARGATE
  • RESEND_AUDIENCE_ID_CODE_ANALYSIS
  • RESEND_FROM_EMAIL (optional; per-product defaults otherwise)

Note on zod

zod is 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 build passes; /stargate and /code-analysis prerender as static routes; pagefind indexes only docs pages (landing pages also carry data-pagefind-ignore).
  • Dev server: all routes 200 (/, /remix, /stargate, /code-analysis, mix/remix docs, examples); both landing pages render full section stacks with correct copy and accents.
  • Waitlist API: valid posts → dev no-op 200; invalid email or unknown product → 400.

🤖 Generated with Claude Code

Gabriel Rangel and others added 8 commits July 14, 2026 16:14
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>
@gabrielrangel95

Copy link
Copy Markdown
Contributor Author

Closing as duplicate — #19 (same changes) is the active PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant