diff --git a/src/app/(marketing)/about/page.tsx b/src/app/(marketing)/about/page.tsx new file mode 100644 index 0000000..ba67f54 --- /dev/null +++ b/src/app/(marketing)/about/page.tsx @@ -0,0 +1,191 @@ +import type { Metadata } from "next"; +import Link from "next/link"; +import { + ArrowRight, + Github, + Globe, + History, + Code2, + Users, + Shield, + Server, + FlaskConical, +} from "lucide-react"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent } from "@/components/ui/card"; + +export const metadata: Metadata = { + title: "About", + description: + "CLAHub is an open-source CLA management platform maintained by DamageLabs. Learn about the project's history and mission.", +}; + +export default function AboutPage() { + return ( + <> + {/* Hero */} +
+

+ About CLAHub +

+

+ An open-source platform for managing Contributor License Agreements on + GitHub. Originally created in 2012, fully rewritten in 2026. +

+
+ + {/* Story */} +
+
+

+ The Story +

+
+ {[ + { + icon: History, + title: "2012 — Created", + description: + "CLAHub was originally built as a Ruby on Rails application hosted on Heroku. It provided a simple way to manage CLAs for GitHub projects.", + }, + { + icon: Users, + title: "2016 — Went Dark", + description: + "The hosted instance went down and never came back. 58 issues accumulated. The code sat untouched while the ecosystem moved on.", + }, + { + icon: Code2, + title: "2026 — Rewritten", + description: + "A complete ground-up rewrite with Next.js, TypeScript, and Prisma. Every class of bug from the original was addressed by architecture, not patches.", + }, + ].map((item) => ( + + + +

{item.title}

+

+ {item.description} +

+
+
+ ))} +
+
+
+ + {/* Tech stack */} +
+

+ Built With +

+
+ {[ + { label: "Next.js 16", detail: "App Router + SSR" }, + { label: "TypeScript", detail: "Full-stack type safety" }, + { label: "Prisma 7", detail: "Type-safe ORM" }, + { label: "SQLite", detail: "Zero-ops database" }, + { label: "Auth.js v5", detail: "GitHub OAuth" }, + { label: "Tailwind CSS", detail: "Utility-first styling" }, + { label: "shadcn/ui", detail: "Accessible components" }, + { label: "GitHub App", detail: "Checks API integration" }, + ].map((tech) => ( + + + {tech.label} + {tech.detail} + + + ))} +
+
+ + {/* Maintained by */} +
+
+

+ Maintained By +

+
+ + + +

DamageLabs

+

+ DamageLabs builds privacy-first software for collectors and + maintains open-source developer tools. CLAHub is part of our + commitment to keeping useful open-source projects alive. +

+
+ + +
+
+
+
+
+
+ + {/* Links */} +
+

+ Get Involved +

+
+ {[ + { + icon: Github, + title: "Source Code", + description: "View the code, open issues, submit PRs.", + href: "https://github.com/DamageLabs/clahub", + label: "GitHub", + }, + { + icon: Shield, + title: "Documentation", + description: "Guides for owners and contributors.", + href: "/docs", + label: "Read Docs", + }, + { + icon: Server, + title: "Self-Host", + description: "Run your own instance with Docker.", + href: "https://github.com/DamageLabs/clahub#docker-self-hosting", + label: "Get Started", + }, + ].map((link) => ( + + + +

{link.title}

+

{link.description}

+ +
+
+ ))} +
+
+ + ); +} diff --git a/src/components/site-header.tsx b/src/components/site-header.tsx index 57a01de..5551557 100644 --- a/src/components/site-header.tsx +++ b/src/components/site-header.tsx @@ -10,8 +10,7 @@ import { UserMenu } from "@/components/user-menu"; const navLinks = [ { href: "/why-cla", label: "Why CLA?" }, { href: "/docs", label: "Docs" }, - { href: "/terms", label: "Terms" }, - { href: "/privacy", label: "Privacy" }, + { href: "/about", label: "About" }, ]; interface SiteHeaderProps {