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>
BIN
public/images/contact-collab.webp
Normal file
|
After Width: | Height: | Size: 6.1 MiB |
BIN
public/images/hero-dashboard.webp
Normal file
|
After Width: | Height: | Size: 6.9 MiB |
BIN
public/images/service-devops.webp
Normal file
|
After Width: | Height: | Size: 6.6 MiB |
BIN
public/images/service-mobile.webp
Normal file
|
After Width: | Height: | Size: 6.1 MiB |
BIN
public/images/service-web-apps.webp
Normal file
|
After Width: | Height: | Size: 5.7 MiB |
BIN
public/images/workflow-build.webp
Normal file
|
After Width: | Height: | Size: 5.8 MiB |
BIN
public/images/workflow-deploy.webp
Normal file
|
After Width: | Height: | Size: 6.0 MiB |
BIN
public/images/workflow-design.webp
Normal file
|
After Width: | Height: | Size: 6.0 MiB |
BIN
public/images/workflow-discovery.webp
Normal file
|
After Width: | Height: | Size: 6.3 MiB |