Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
Commitb0148e9unknown_key

feat(design): Phase 2 — marketing surface (/pricing, /features, /about)

feat(design): Phase 2 — marketing surface (/pricing, /features, /about)

Adds three new public marketing pages that showcase the new design
system at full strength. Routes mounted via marketingRoutes in app.tsx.

/pricing
- 4-tier grid (Free / Pro / Team / Enterprise) with Most-Popular pill on Pro
- Self-host card with surface-glow + 4-stat grid (gradient numerals)
- 6-item FAQ in <details>/<summary> with rotating + glyph
- Closing CTA card

/features
- 36 features across 6 categories (Code intelligence / Quality gate /
  Real-time / Platform / Identity + governance / Integrations)
- Hairline-grid 2-col layout with hover dot indicator + cell highlight
- Section headers use the new .eyebrow + left-aligned section-header pattern

/about
- Mission prose block with bold-callout
- 6-card principles grid with mono-numbered chips
- Stack pill row (8 stack items: Bun, Hono, Drizzle, Neon, Sonnet 4,
  Haiku 4.5, Smart-HTTP, Fly.io)
- 3-card contact grid (product, security, support)

Layout shell
- Footer link grid restructured: Product (Features/Pricing/Explore/Marketplace),
  Platform (Quickstart/Status/GraphQL/MCP), Company (About/Terms/Privacy/AUP)

All pages share a sharedMktCss base + per-page CSS, namespaced under .mkt-
to keep them out of the global stylesheet. Reuse the Phase 1 utilities:
.eyebrow .display .section-header .stagger .surface-glow .gradient-text.

Smoke: pricing 200/89KB, features 200/87KB, about 200/86KB.
Tests: 1226 pass / 1 unrelated pre-existing fail.
Claude committed on May 3, 2026Parent: 958d26a
3 files changed+11734b0148e937915724e40f3e7755d0be96e191a75ad
3 changed files+1173−4
Modifiedsrc/app.tsx+4−0View fileUnifiedSplit
3131import healthDashboardRoutes from "./routes/health";
3232import statusRoutes from "./routes/status";
3333import helpRoutes from "./routes/help";
34import marketingRoutes from "./routes/marketing";
3435import seoRoutes from "./routes/seo";
3536import { platformStatus } from "./routes/platform-status";
3637import insightRoutes from "./routes/insights";
238239// /help — quickstart + API cheatsheet
239240app.route("/", helpRoutes);
240241
242// /pricing, /features, /about — marketing surface
243app.route("/", marketingRoutes);
244
241245// SEO: robots.txt + sitemap.xml
242246app.route("/", seoRoutes);
243247
Addedsrc/routes/marketing.tsx+1164−0View fileUnifiedSplit
Large file (1,164 lines). Load full file
Modifiedsrc/views/layout.tsx+5−4View fileUnifiedSplit
111111 <div class="footer-links">
112112 <div class="footer-col">
113113 <div class="footer-col-title">Product</div>
114 <a href="/features">Features</a>
115 <a href="/pricing">Pricing</a>
114116 <a href="/explore">Explore</a>
115117 <a href="/marketplace">Marketplace</a>
116 <a href="/help">Quickstart</a>
117 <a href="/shortcuts">Shortcuts</a>
118118 </div>
119119 <div class="footer-col">
120120 <div class="footer-col-title">Platform</div>
121 <a href="/help">Quickstart</a>
121122 <a href="/status">Status</a>
122123 <a href="/api/graphql">GraphQL</a>
123124 <a href="/mcp">MCP server</a>
124 <a href="/sitemap.xml">Sitemap</a>
125125 </div>
126126 <div class="footer-col">
127 <div class="footer-col-title">Legal</div>
127 <div class="footer-col-title">Company</div>
128 <a href="/about">About</a>
128129 <a href="/terms">Terms</a>
129130 <a href="/privacy">Privacy</a>
130131 <a href="/acceptable-use">Acceptable use</a>
131132