The website for the copperbox GitHub org — a single-page index of the org's open-source projects, deployed to GitHub Pages at copperbox.dev.
Built with Next.js (App Router) + TypeScript, statically exported.
Append one object to the PROJECTS array in data/projects.ts.
That's the whole workflow — the Featured section, the filterable list, and the
hero counts all derive from that array.
{
slug: "my-tool", // unique id (keys + thumbnail lookup)
name: "my-tool", // display name
desc: "One line about what it does.", // shown in cards and rows
status: "active", // "active" | "wip" | "archived"
featured: false, // true → large card in Featured
repo: "github.com/copperbox/my-tool",
tags: ["typescript"], // optional, not currently rendered
}Featured projects get a bespoke inline-SVG illustration in
components/FeaturedThumb.tsx; slugs without
one fall back to a placeholder.
npm install
npm run dev # http://localhost:3000
npm run build # static export → out/Pushing to main triggers .github/workflows/deploy.yml,
which builds the static export and publishes it to GitHub Pages. The custom
domain is set by public/CNAME (copperbox.dev).
One-time repo setup: in Settings → Pages, set the source to GitHub Actions,
and configure the copperbox.dev DNS (A/AAAA records to GitHub Pages, or an
ALIAS/ANAME to the pages host) so the custom domain verifies.
Google Analytics is wired up in app/layout.tsx with the
tag G-D60XMFTT7H.