--- name: project-setup description: Tech stack, Docker setup, and deployment model for the netork-website project metadata: type: project --- React 18 + TypeScript + Vite + Tailwind CSS v3 SPA. Heroicons via @heroicons/react (renders inline SVG). **Docker:** Multi-stage Dockerfile (node:20-alpine build → nginx:alpine serve). nginx.conf handles SPA routing via try_files + gzip + immutable cache headers. **docker-compose.yml:** Service `netork-website`, `expose: ["80"]` only (no host port binding), joins `proxy-net` (external network). SSL terminated by Zoraxy which proxies to `netork-website:80` on proxy-net. **Why:** Zoraxy is the reverse proxy on the same Docker network; no host port needed. **How to apply:** When adding/changing the Docker setup, keep no host port binding. Zoraxy target is `netork-website:80`. **Pages built:** `/` (Home, all 8 sections with mock UI), `/features`, `/drivers`, `/docs/getting-started`. Remaining P2 pages (`/docs/architecture`, `/plugins`) not yet built. **Screenshots:** `public/screenshots/` exists but is empty. Home page uses mock UI components instead of real screenshots until actual screenshots are dropped in. **Logo:** `public/logo.png` must be placed manually — referenced in nav, footer, favicon, OG image.