CityBlocks is a Vite + React + Three.js experience for exploring building footprints. The app now runs entirely as a client-side experience, making it easy to host on any static platform (Vercel, Netlify, etc.).
- Node.js 20+
- pnpm 9+
pnpm install
cp .env.example .env.local # fill in provider keys
pnpm run dev| Command | Description |
|---|---|
pnpm run dev |
Start the Vite dev server. |
pnpm run lint |
ESLint (flat config). |
pnpm run build |
Type-check then build the client bundle. |
pnpm run preview |
Serve the built bundle locally (matches Vercel). |
pnpm run check |
CI parity (tsc + Vite build). |
Always run
pnpm run lint && pnpm run build(orpnpm run check) before pushing.
Configure the following in .env.local (or Vercel Project Settings):
VITE_OPENAI_API_KEYVITE_GENAI_API_KEYVITE_HUGGINGFACE_API_KEYVITE_OLLAMA_API_KEY
The in-app API key button stores overrides in local storage for manual testing.
- GitHub Actions (
.github/workflows/ci.yml) runs lint + build on every push/PR. - Vercel uses
vercel.json→pnpm run buildwith SPA fallback routes. - Full deployment instructions live in
DEPLOYMENT.md.
- Follow
CONTRIBUTING.mdandagents-hub/AGENTS.md. - Log each working session under
agents-hub/<project>/sessions/. - Use the PR template and link the relevant task/session IDs.