Skip to main content
luke@terminal:/projects/projex$ cat projex.md

Projex

[active](hybrid)

Project showcase framework for personal sites - Show Everything You Ship.

Pre-built project cards with automatic data fetching from GitHub, npm, and Product Hunt

stats:

stack:
TypeScript
React
Vitest
ESLint

background:

It started with a simple question: how do I showcase my projects on my personal site in a structured way? I asked AI, did some research, and kept getting the same answer - Most developers just build a custom solution. That struck me as strange. If everyone building a personal site needs a project showcase, why is everyone building the same thing from scratch? That gap felt like an opportunity.

why:

Projex is my attempt to solve that problem once and for all. A shadcn-style component library that gives developers pre-built project cards with automatic data fetching from GitHub, npm, and Product Hunt. But it was also about more than the problem I was solving. I wanted to build something that other people could actually use. My first real OSS project. One small step toward building something with my name on it.

struggles:

[challenge]OIDC trusted publishing took several failed attempts before working it out
[challenge]VitePress on Vercel silently 404s if your output directory or routing config is even slightly wrong
[challenge]Started with a split CLI/core architecture, merged it back — premature separation added complexity
[challenge]Once I started using this library on my own site I started discovering a lot of UX problems that I was overlooking as the author.
[learning]OIDC trusted publishing is worth the setup pain — no secrets to rotate, no tokens to leak
[learning]Architecture decisions made on day one are expensive to undo. Bias toward simplicity when possible
[learning]AST manipulation treats code as structured data. ts-morph handles TypeScript AST manipulation cleanly.

timeline:

2026-02-21Monorepo scaffolded with pnpm workspaces, GitHub API integration wired up
2026-02-22Added NPM registry and Product Hunt as data sources alongside GitHub
2026-02-23VitePress docs site live with interactive examples
2026-03-08Rebranded to Projex — 1.0.0 shipped with OIDC publishing, no more NPM_TOKEN
2026-03-08GitHub Releases now created automatically as part of the publish pipeline
2026-03-26Officially made Projex public on Github 🎉
2026-04-16Shipped v1.3.0 with new CLI functionality. No more editing projex config file.
2026-04-18Shipped v1.4.0 — turnkey SmartProjectGrid component, tagged-union stats typing, structured fetch errors, and split the CLI into its own export.
2026-08-08Shipped v1.5.0 — code-review follow-ups: hardened stats type safety across every consumer, showSort now actually sorts, and moved CLI deps out of the main bundle.
luke@terminal:/projects/projex$ git log --oneline -5
5359508Merge pull request #53 from ManningWorks/wt/t_2aecb61d2026-10-14T12:08:34Z
29875cfMerge pull request #54 from ManningWorks/wt/t_80939be82026-10-14T11:55:48Z
d3c246bchore(release): v1.6.12026-10-14T11:14:38Z
d694d05test: add theme existence-check rethrow coverage (PR #51 review)2026-10-14T10:56:26Z
9f264e1Merge pull request #51 from ManningWorks/wt/t_08b16d832026-10-14T10:32:38Z