clearframe
The portfolio platform you're looking at right now. Next.js 16 + Postgres + Cloudflare R2; GitHub-verified provenance; React Flow canvas for architecture diagrams; pluggable drivers for Steam / Vercel / itch.
The detective board renders best on desktop. Below is a flat list of this project’s nodes.
- Next.js App (web)★
Single Next.js 16 process. Server Components render folios; server actions mutate; API routes for cron + R2 presign.
- Browser (React 19)
Player's browser. Hydrates RSC payload; React Flow renders the canvas; shadcn / Base UI for chrome.
- Daily Freshness Cron
Vercel Cron hits /api/cron/freshness at 06:00 UTC; fans out across drivers.
- Integrations SPI★
Generic PlatformDriver interface — sync(integration) → { buildVersion, lastDeployAt, status }.
- Schema (Drizzle + Zod)★
Single source of truth for the data model: Drizzle table defs and Zod input schemas live side-by-side.
- Postgres (Neon)
Managed serverless Postgres. All folio data — nodes, links, frames, share links.
- @xyflow/react★
React Flow — the canvas every folio is rendered through.
- Auth.js v5
OAuth via GitHub; Drizzle adapter persists sessions.
- Drizzle ORM
Type-safe query builder over node-postgres.
- Cloudflare R2
Object storage for media. Browser uploads via presigned PUT URLs minted by /api/r2.
- GitHub OAuth
Identity provider — the only sign-in path.
- GitHub REST API
Octokit. Verifies repo ownership for provenance badges; reads commit timestamps for freshness signals.
- PostHog
Product analytics — funnel from share-link click to highlights frame.
- Vercel (hosting)
Where the clearframe Next.js process runs. Daily cron schedules the freshness sweep.
- itch.io Driver
Stub driver — placeholder for itch.io butler integration.
- Steam Driver
Concrete driver — pulls latest build version from Steamworks Web API for user projects.
- Vercel Driver
Concrete driver — reads latest deployment for a user project hosted on Vercel.