A Next.js 16 portfolio, built on top of a fresh create-next-app: an interactive ink-field home page, work and lab indexes, case studies in MDX, and full right-to-left Arabic.
Home page (English, 1440×900): live ink shader behind the portrait, with the "five worlds" index
(not captured — this report was written in a later session, so the original prompts aren't available)
The repo has one commit (the create-next-app scaffold). Everything below is uncommitted work in the tree: about 2,100 lines changed in tracked files, plus new src/app/[lang], components, content, i18n, lib and styles folders.
| Area | What's there |
|---|---|
| Stack | Next.js 16.3.7, React 19.2, Tailwind v4, MDX, motion, Lenis, three.js / R3F |
| Routes | /[lang] home, /work, /work/[slug], /lab, /about, plus scratch pages (avatars, dock, icons, preview, whale) |
| i18n | en / ar via src/proxy.ts + dictionaries; every text field is { en, ar } and ar.ts is type-checked against en.ts |
| Content | Projects in content/work.ts (Doccera, Signal, EduEval, …), experiments in content/lab.ts (Shader fields, Garment Studio, Motion engine, …), MDX case studies for Doccera and Signal in both languages |
| Design system | OKLCH tokens for light and dark in styles/tokens.css, a fluid type scale, Fraunces / Geist / Geist Mono / Tajawal, paper-grain textures |
| Home "worlds" | Arrival → Work → Lab → Skills → Values → Say hello, each a component in components/worlds/ |
| Signal wire | lib/signal.ts shows live stories when SIGNAL_API_URL is set and otherwise falls back to a JSON snapshot |
| Extras | Downloadable CV, portrait variants, a floating "Hiring? 30-second version" dock |
pnpm typecheck: passed with no errors./en, /en/work, /en/lab, /en/about and /ar all returned 200 on the dev server.avatars, dock, icons, preview, whale) staying, or are they workbench pages to remove before launch?