Context
The map site is a fresh Vite + React + TypeScript SPA in a new top-level site/ folder — separate from the existing web/ Next.js README-board app. This issue is just the shell; the globe/data come in later issues. Deploy target is Cloudflare Pages (#20).
What to build
npm create vite@latest site -- --template react-ts (top-level site/).
- Add Tailwind; dark theme matching HackHQ: near-black bg (
#0d1117), green accent (#7ee787), gray text (#8b949e). Reuse the palette from web/ for consistency.
- Base layout components:
- Env: read
import.meta.env.VITE_SUPABASE_URL / VITE_SUPABASE_ANON_KEY. Add .env (gitignored) and a committed .env.example.
- Scripts work:
npm run dev, npm run build (clean), npm run preview.
Acceptance
Part of #10 · Design spec · Repo data lives in .github/scripts/listings.json
Context
The map site is a fresh Vite + React + TypeScript SPA in a new top-level
site/folder — separate from the existingweb/Next.js README-board app. This issue is just the shell; the globe/data come in later issues. Deploy target is Cloudflare Pages (#20).What to build
npm create vite@latest site -- --template react-ts(top-levelsite/).#0d1117), green accent (#7ee787), gray text (#8b949e). Reuse the palette fromweb/for consistency.import.meta.env.VITE_SUPABASE_URL/VITE_SUPABASE_ANON_KEY. Add.env(gitignored) and a committed.env.example.npm run dev,npm run build(clean),npm run preview.Acceptance
site/Vite + React + TS + Tailwind builds clean.env.exampledocumentsVITE_SUPABASE_URL+VITE_SUPABASE_ANON_KEYBlocks: Frontend: Supabase data layer (client, types, fetch) #15, Frontend: 3D globe with status-colored markers (react-globe.gl) #16, Infra: Cloudflare Pages deployment + Supabase env + domain #20
Part of #10 · Design spec · Repo data lives in
.github/scripts/listings.json