diff --git a/apps/docs/app/(home)/page.tsx b/apps/docs/app/(home)/page.tsx index 84d608c..d7828ee 100644 --- a/apps/docs/app/(home)/page.tsx +++ b/apps/docs/app/(home)/page.tsx @@ -1,29 +1,346 @@ import Link from "next/link"; +import { + Palette, + Search, + Megaphone, + Sparkles, + Kanban, + Scale, + GraduationCap, + Crown, + Eye, + Code, + Terminal, + FolderOpen, + Zap, + ArrowRight, +} from "lucide-react"; +import type { LucideIcon } from "lucide-react"; -export default function HomePage() { +function GitHubIcon({ className }: { className?: string }) { + return ( + + ); +} + +interface Domain { + name: string; + icon: LucideIcon; + methodology: string; + skills: number; + description: string; + href: string; +} + +const domains: Domain[] = [ + { + name: "Design", + icon: Palette, + methodology: "Design Thinking", + skills: 9, + description: + "Five-phase design thinking process for component design, writing to Figma canvas via MCP.", + href: "/docs/design", + }, + { + name: "Research", + icon: Search, + methodology: "Double Diamond", + skills: 4, + description: + "Structured discovery and validation through divergent and convergent thinking.", + href: "/docs/research", + }, + { + name: "Development", + icon: Code, + methodology: "Dev Workflow", + skills: 6, + description: + "Plan, build, test, debug, review, and ship with structured development workflows.", + href: "/docs/development", + }, + { + name: "Accessibility", + icon: Eye, + methodology: "WCAG-EM", + skills: 6, + description: + "WCAG 2.1 audit methodology — scope, evaluate, report, remediate, and retest.", + href: "/docs/accessibility", + }, + { + name: "Marketing", + icon: Megaphone, + methodology: "RACE Framework", + skills: 37, + description: + "Full growth marketing lifecycle — strategy, reach, act, convert, and engage.", + href: "/docs/marketing", + }, + { + name: "Branding", + icon: Sparkles, + methodology: "Brand Lifecycle", + skills: 6, + description: + "Brand creation from discovery to guidelines — verbal identity, visual system, and assets.", + href: "/docs/branding", + }, + { + name: "Project Management", + icon: Kanban, + methodology: "Scrum", + skills: 32, + description: + "Sprint-based project management — initiate, plan, sprint, review, and improve.", + href: "/docs/project-management", + }, + { + name: "Legal", + icon: Scale, + methodology: "Legal Lifecycle", + skills: 35, + description: + "Full legal operations — assess, draft, review, comply, and govern.", + href: "/docs/legal", + }, + { + name: "Coaching", + icon: GraduationCap, + methodology: "Domain Coaching", + skills: 5, + description: + "Expert feedback across UX, code, copy, accessibility, and strategy disciplines.", + href: "/docs/coaching", + }, + { + name: "Leadership", + icon: Crown, + methodology: "Leadership Dev", + skills: 12, + description: + "Build and lead teams — assess, vision, build, develop, sustain, plus day-to-day tools.", + href: "/docs/leadership", + }, +]; + +const stats = [ + { value: "10", label: "Domains" }, + { value: "152+", label: "Skills" }, + { value: "10", label: "Methodologies" }, + { value: "MIT", label: "Licensed" }, +]; + +const steps = [ + { + number: "01", + title: "Install", + command: "claude install bromso/metapowers", + description: "Add all domains to Claude Code in one command.", + }, + { + number: "02", + title: "Run a skill", + command: "/design:empathize DatePicker", + description: "Each skill guides you through a proven methodology.", + }, + { + number: "03", + title: "Get artifacts", + command: ".metapowers/design/DatePicker/", + description: "Structured outputs accumulate across phases.", + }, +]; + +function DomainCard({ domain }: { domain: Domain }) { + const Icon = domain.icon; return ( -
-

Metapowers

-

- Metaprompting plugins for Claude Code — structured workflows for design, - coding, research, and more. + +

+
+ +
+
+

{domain.name}

+

+ {domain.methodology} +

+
+
+

+ {domain.description}

-
- - Get Started - - - GitHub - +
+ + {domain.skills} skills + +
+ + ); +} + +export default function HomePage() { + return ( +
+ {/* Hero */} +
+
+ + Claude Code plugins for structured workflows +
+

+ Metapowers +

+

+ Structured workflows for every discipline — from design to legal. + Claude Code plugins powered by proven methodologies. +

+
+ + Get Started + + + + + GitHub + +
+
+ + {/* Stats */} +
+
+ {stats.map((stat) => ( +
+ + {stat.value} + + + {stat.label} + +
+ ))} +
+
+ + {/* Domain Cards */} +
+
+

+ Every discipline, one toolkit +

+

+ Each domain implements an industry-standard methodology as a set of + slash commands. Run a skill, follow the process, get structured + artifacts. +

+
+
+ {domains.map((domain) => ( + + ))} +
+
+ + {/* How It Works */} +
+
+
+

+ How it works +

+

+ Install once, use everywhere. Each skill guides you through a + proven methodology step by step. +

+
+
+ {steps.map((step) => ( +
+
+ + {step.number} + +

+ {step.title} +

+
+
+
+ {step.number === "03" ? ( + + ) : ( + + )} + + {step.number === "03" ? "output" : "terminal"} + +
+ + {step.number !== "03" && ( + $ + )} + {step.command} + +
+

+ {step.description} +

+
+ ))} +
+
+
+ + {/* Footer */} +
); } diff --git a/apps/docs/app/docs/[[...slug]]/page.tsx b/apps/docs/app/docs/[[...slug]]/page.tsx index 329f0f3..5157078 100644 --- a/apps/docs/app/docs/[[...slug]]/page.tsx +++ b/apps/docs/app/docs/[[...slug]]/page.tsx @@ -28,7 +28,7 @@ export default async function Page(props: PageProps) { diff --git a/apps/docs/package.json b/apps/docs/package.json index fcc3f27..98cccf3 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -22,6 +22,7 @@ "@types/node": "25.6.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", + "lucide-react": "^1.9.0", "tailwindcss": "^4.0.0", "typescript": "^5.7.0" } diff --git a/bun.lock b/bun.lock index 39a1263..5c6704b 100644 --- a/bun.lock +++ b/bun.lock @@ -27,6 +27,7 @@ "@types/node": "25.6.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", + "lucide-react": "^1.9.0", "tailwindcss": "^4.0.0", "typescript": "^5.7.0", }, @@ -806,7 +807,7 @@ "lru-cache": ["lru-cache@11.3.5", "", {}, "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw=="], - "lucide-react": ["lucide-react@1.8.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-WuvlsjngSk7TnTBJ1hsCy3ql9V9VOdcPkd3PKcSmM34vJD8KG6molxz7m7zbYFgICwsanQWmJ13JlYs4Zp7Arw=="], + "lucide-react": ["lucide-react@1.9.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-6qVAmbgCjcJz7sAGSPSSJ++RAwjlK2XCbRrZKv63Ciko1KT8jX0//CXxgI3jg2HlJu8tADqdYlNDebmYjeoruA=="], "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], @@ -1236,6 +1237,8 @@ "fumadocs-mdx/zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="], + "fumadocs-ui/lucide-react": ["lucide-react@1.8.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-WuvlsjngSk7TnTBJ1hsCy3ql9V9VOdcPkd3PKcSmM34vJD8KG6molxz7m7zbYFgICwsanQWmJ13JlYs4Zp7Arw=="], + "gray-matter/js-yaml": ["js-yaml@3.14.2", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg=="], "next/postcss": ["postcss@8.4.31", "", { "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } }, "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ=="], diff --git a/docs/plans/2026-04-24-landing-page-design.md b/docs/plans/2026-04-24-landing-page-design.md new file mode 100644 index 0000000..b96a27e --- /dev/null +++ b/docs/plans/2026-04-24-landing-page-design.md @@ -0,0 +1,38 @@ +# Landing Page Design + +**Date:** 2026-04-24 +**Status:** Approved + +## Overview + +Redesign the docs site landing page (`app/(home)/page.tsx`) from a bare-bones hero to a polished, professional page with domain cards. Inspired by Fumadocs' clean aesthetic. + +## Page Sections + +### 1. Hero +- Headline: "Metapowers" +- Subheadline: "Structured workflows for every discipline — from design to legal. Claude Code plugins powered by proven methodologies." +- CTAs: "Get Started" (primary) + "GitHub" (secondary outline) +- Clean, centered, generous whitespace + +### 2. Stats Bar +- "10 Domains" | "170+ Skills" | "10 Methodologies" | "Open Source" +- Horizontal row, muted text + +### 3. Domain Cards Grid +- 3-col responsive grid (3 desktop, 2 tablet, 1 mobile) +- Each card: Lucide icon, domain name, methodology, skill count, description, link +- Subtle border, hover elevation + +### 4. How It Works +- 3-step horizontal: Install → Run → Artifacts +- Code blocks with commands + +### 5. Footer +- "Built by Jonas Broms" + GitHub + MIT + +## Technical +- Single file: `app/(home)/page.tsx` +- Tailwind v4 + `fd-*` Fumadocs tokens +- Static content, works with `output: "export"` +- No new dependencies needed