feat(site): port stitch design system + seed-ready content #5

Merged
jason.woltje merged 3 commits from feat/site-content-port into main 2026-04-15 01:16:42 +00:00

3 Commits

Author SHA1 Message Date
3827e6bc4b fix(build): mark Payload-fetching pages as force-dynamic
All checks were successful
ci/woodpecker/push/web Pipeline was successful
ci/woodpecker/pr/web Pipeline was successful
Static prerender at build time fails when PAYLOAD_SECRET/DATABASE_URI
are unset. About/Projects/Contact + project detail all read from
Payload at request time — make that explicit.
2026-04-14 19:51:05 -05:00
ff4d10ef24 fix(ci): refresh pnpm-lock for tsx dev dep
Some checks failed
ci/woodpecker/pr/web Pipeline failed
ci/woodpecker/push/web Pipeline failed
2026-04-14 19:24:45 -05:00
486bbc8cf8 feat(site): port stitch design system + seed-ready content model
Some checks failed
ci/woodpecker/push/web Pipeline failed
ci/woodpecker/pr/web Pipeline failed
Ports the "Technical Editorial" design sample into real TSX wired to
Payload globals/collections. Home/About/Projects (list+detail)/Contact
pages render against Payload data. Expands schemas (Home principles,
About timeline/skills/gear, Contact channels) to cover the full design
surface. Adds seed script that populates realistic AI-drafted content
for first boot. Defers writing/resume routes per scope cut.

- Design tokens: Material-3 palette + Space Grotesk/Inter typography
  scale + dot-grid + glassmorphism utilities
- Shared layout: Nav, Footer, StatusTerminal, GridOverlay, Button,
  TechChip in src/components/site
- Schemas: expand 5 globals + 6 collections; add auto-slug hook
- Seed: scripts/seed.ts — idempotent upsert for media, categories,
  6 projects, 8 gear, 3 posts, 5 globals; generates placeholder admin
- Contact: form + /api/contact route with optional Turnstile verify
- Rename TURNSTILE_SITE_KEY -> NEXT_PUBLIC_TURNSTILE_SITE_KEY (client)
- Remove dead src/components/SiteHeader|SiteFooter|StatusTerminal
2026-04-14 18:57:53 -05:00