Files
portfolio/docs/handoff-plan.md
lerko96 ea63347cd6 migrate CRA to Next.js 16 + React 19 + TypeScript + Tailwind v4
- replace CRA scaffold with Next.js static export config
- add app router pages: home, homelab, archive
- add components: Nav, Footer, Hero, Skills, ProjectCard, ThemeScript
- add ThemeContext for dark mode with FOUC prevention
- add data layer: projects.ts, services.ts
- update .gitignore for Next.js (ignore .next/, out/, next-env.d.ts)
- add docs: handoff plan, homelab decisions, style reference
2026-04-10 18:46:19 -04:00

30 lines
2.3 KiB
Markdown

What's done
git tag cra-legacy — old CRA code preserved
Next.js 16 + React 19 + TypeScript + Tailwind v4 scaffolded
next.config.ts — output: 'export', trailingSlash: true, images: { unoptimized: true }
package.json — deploy scripts, postbuild writes out/.nojekyll, gh-pages@^6
globals.css — full design system: colors, fonts, breakpoints, keyframes (Tailwind v4 CSS-first config)
ThemeScript.tsx — FOUC-prevention blocking script
ThemeContext.tsx — dark mode provider + useTheme hook, localStorage key lerko96-dark-mode
Nav.tsx — sticky header, active link detection, dark mode toggle
Footer.tsx — dynamic copyright year, social links
layout.tsx — Montserrat + Source Code Pro via next/font, Font Awesome CDN, ThemeProvider wrapping
src/data/projects.ts — all 8 projects typed, featured + archive split
src/data/services.ts — 20+ homelab services with categories
src/app/page.tsx — home page with Hero, Skills, ProjectCards
src/app/homelab/page.tsx — full homelab page: at-a-glance, VLAN table, services grid, 6 ADRs, GitHub CTA
src/app/archive/page.tsx — archive grid with all older projects
public/CNAME — www.lerko96.com
public/images/headshot-tyler_koenig.png — restored from git tag
What's left
Test build — npm run build and fix any TypeScript/lint errors (hasn't been run yet)
Local preview — npx serve out and verify all 3 routes load correctly, dark mode toggle works, no broken assets
Email address — Footer has tylerkoenig96@gmail.com hardcoded — confirm that's correct or update
Deploy — npm run deploy pushes out/ to master
Post-deploy checks — confirm www.lerko96.com loads, /homelab and /archive routes work via direct URL, _next/ assets load (not 404'd)
Screenshots — swap gradient placeholders for real project screenshots when ready (just drop into public/images/ and update projects.ts)
CLAUDE.md update — update stack, commands, and architecture notes to reflect Next.js (currently still says CRA)
Key gotcha to remember
Tailwind v4 is CSS-first — no tailwind.config.ts. All custom tokens live in globals.css under @theme {}. Dark mode variant is defined as @variant dark (&:where(.dark, .dark *)).
Memory has been saved to /home/lerko/.claude/projects/-home-lerko-Code-lerko96-github-io/memory/ — the next session will have full context automatically.