# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Build Commands - Development: `npm run dev` - Start Vite development server with hot-reload - Build: `npm run build` - Build production-ready static files to `dist/` directory - Preview: `npm run preview` - Preview production build locally ## Project Structure This is a Svelte + Vite + TailwindCSS project without SvelteKit. Key characteristics: - Pure Svelte application with custom client-side routing - TailwindCSS for styling with custom Figtree font family - No server-side rendering or API routes - Static site deployment via `deploy-web.sh` ## Architecture Overview - **Routing**: Custom client-side routing implemented in `App.svelte` using browser history API - **Pages**: Located in `src/pages/` - each page is a Svelte component - **Components**: Reusable components in `src/components/` - **Services**: Business logic in `src/lib/` (analytics, cookies) - **Styling**: TailwindCSS with configuration in `tailwind.config.js` - **Assets**: Static assets in `public/` (fonts, images, icons) ## Development Workflow - Pages are added to `src/pages/` and imported in `App.svelte` - Route handling is done through the `activePage` state variable - Cookie consent and analytics tracking are integrated throughout - Static deployment copies `dist/` contents to production server ## Deployment - Production deployment script: `deploy-web.sh` - Builds and packages the application for deployment to Incus container - Environment variables loaded from `.env-deploy-geosector-dev`