Skip to content

Commit 4a4b23e

Browse files
committed
feat(docs): add feature flags + uptime landing pages, features mega menu, and redirects
- Feature flags landing page with dashboard demo, feature grid, and FAQ - Uptime landing page marked as "coming soon" with early access CTAs - Features mega menu in navbar (desktop + mobile) with 4 product items - Redirects for /error-tracking and /web-vitals to their docs pages - Extract reusable FaqSection component from homepage + pricing FAQs - Rewrite all FAQ answers to focus on outcomes, not technical jargon - Update design-system rules with component reuse principle
1 parent 076251e commit 4a4b23e

9 files changed

Lines changed: 1107 additions & 67 deletions

File tree

.cursor/rules/design-system.mdc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,18 @@ This file is **intentionally small**. It grows as we lock patterns. **Interactio
3131
- Actions: `size-7` ghost button, `opacity-0 group-hover:opacity-100 data-[state=open]:opacity-100`, wrapped in a stop-propagation `div`.
3232
- Canonical reference: `components/monitors/monitor-row.tsx`, `apps/dashboard/app/(main)/links/_components/link-item.tsx`.
3333

34+
## Component reuse principle
35+
36+
Before building any new UI — a section, a pattern, a data display — **search the codebase for an existing component that does the same thing**. If one exists, use it. If it almost fits, extend it with props instead of forking. Duplicate implementations drift in styling and behavior over time.
37+
38+
- When the same structural pattern appears in **2+ places**, extract it into a shared location (`components/` or the relevant shared folder) and use it everywhere.
39+
- Feature pages should reuse the **same components, sizing, spacing, and visual language** as the main landing page — they are subpages of the same product, not standalone sites.
40+
- **Never use `Math.random()`** in SSR-rendered components — it causes hydration mismatches. Use deterministic functions for generated visual data.
41+
3442
## Where patterns live
3543

3644
- Dashboard UI: `apps/dashboard/` (components co-located with features unless shared).
45+
- Docs / marketing: `apps/docs/components/landing/` for shared section-level components; page-specific components stay co-located in their route folder.
3746
- Shared primitives: existing `@/components/ui` and layout folders—reuse before adding parallel systems.
3847

3948
## Maintaining this rule (required)

0 commit comments

Comments
 (0)