nginx resolves proxy_pass hostnames at startup, before the api container is reachable. Using resolver 127.0.0.11 + set $api defers resolution to request time. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Vite + React frontend: hero, services grid, contact form - Express + nodemailer backend for contact form → kenji@kenjim.com - Multi-stage Docker builds; nginx inside frontend proxies /api to backend - SMTP config via .env (see .env.example) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>