3 Commits

Author SHA1 Message Date
eccaf8a60d Complete Phase 4: Polish, Docker, CI/CD, and deployment readiness
- Fix responsive issues: Card/detail panel use p-4 md:p-8, larger
  progress dots, tighter mobile gaps in Contact section
- Fix lint errors: remove unused vars in BentoCard, AnimatedSection;
  fix explicit-any in ExpandableServiceCard test
- Fix zod-validation-error v4 dependency for eslint-plugin-react-hooks
- Add type-check script to package.json
- Create multi-stage Dockerfile (node:20-alpine build, nginx:alpine serve)
- Create .dockerignore to exclude dev files from build context
- Create nginx.conf with SPA routing, gzip, caching, security headers
- Update docker-compose.yml: build context replaces volume mount,
  preserve Traefik labels, add healthcheck
- Rewrite CI/CD pipeline: Node.js setup, npm ci, type-check, lint,
  test, build, rsync + docker compose build on server
- Add AI-generated images for all placeholder locations
- Archive original index.html as index.html.original

All checks pass: tsc --noEmit, eslint, 222/222 tests, vite build

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:27:30 -07:00
2a59beeac8 Fix WorkflowCarousel layout and add placeholder image system
Restructure WorkflowCarousel into tab headers + detail panel to eliminate
blank space in inactive cards and jarring height jumps on step change.
Detail panel uses a grid overlay crossfade for smooth transitions.

Add PlaceholderImage component and integrate into Hero, BentoCard,
WorkflowCarousel detail panel, and Contact sections. Include AI generation
prompts (PROMPTS.md) for future image creation with Nano Banana 3.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:27:12 -07:00
c915a3cd66 Complete Phase 1: React modernization foundation
- Initialize Vite + React 19 + TypeScript project
- Configure Tailwind CSS v4 with design tokens
- Add Button component (13 tests)
- Add Card component (11 tests)
- Add Container component (9 tests)
- Add Header component with glassmorphism (17 tests)
- Add Footer component (13 tests)
- Add MobileNav with slide-out menu (19 tests)
- Update App.tsx with layout preview

82 tests passing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 01:27:12 -07:00