diff --git a/client/pages/Projects.tsx b/client/pages/Projects.tsx new file mode 100644 index 00000000..e21bf932 --- /dev/null +++ b/client/pages/Projects.tsx @@ -0,0 +1,84 @@ +import Layout from "@/components/Layout"; +import { Badge } from "@/components/ui/badge"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; +import { Button } from "@/components/ui/button"; +import { SHOWCASE } from "@/data/showcase"; +import { cn } from "@/lib/utils"; + +export default function Projects() { + const hasProjects = Array.isArray(SHOWCASE) && SHOWCASE.length > 0; + + return ( + +
+
+ Showcase +

Projects & Testimonials

+

Selected work, outcomes, and words from collaborators.

+
+ +
+ {hasProjects ? ( +
+ {SHOWCASE.map((p) => ( + + {p.image && ( +
+ {p.title} +
+ )} + + {p.title} + + {[p.role, p.timeframe].filter(Boolean).join(" • ")} + + + + {p.description && ( +

{p.description}

+ )} + {p.tags && p.tags.length > 0 && ( +
+ {p.tags.map((t) => ( + {t} + ))} +
+ )} + {p.links && p.links.length > 0 && ( +
+ {p.links.map((l) => ( + + ))} +
+ )} +
+
+ ))} +
+ ) : ( + + + No projects yet + + Add entries in code/client/data/showcase.ts or manage them via CMS. + + + + + + + + )} +
+
+
+ ); +}