WebGPU Portfolio
Generative-art portfolio site. WebGPU canvas background, DOM overlay UI.
Dev
npm install
npm run dev # vite dev server (opens browser)
npm run typecheck # tsc --noEmit
npm run build # typecheck + vite build → dist/
npm run preview # serve built dist/
Docker
# Build
docker build -t webgpu-portfolio .
# Run (foreground)
docker run --rm -p 8080:80 webgpu-portfolio
# Run (detached)
docker run -d -p 8080:80 --name portfolio webgpu-portfolio
# Compose
docker compose up -d
Site at http://localhost:8080.
Smoke test
docker run -d -p 8080:80 --name portfolio-test webgpu-portfolio
curl -sSf http://localhost:8080/ > /dev/null && echo "OK"
curl -sSf http://localhost:8080/assets/ | head -1 # should 200 (hashed JS)
docker stop portfolio-test
Image size
~6 MB (nginx:alpine-slim + static dist). Multi-stage build — Node build layer is discarded.
Description
Languages
TypeScript
66.2%
HTML
15%
WGSL
9.1%
Python
4.7%
GLSL
3.4%
Other
1.6%