gardenCAD

Structure
src/ app/ App shell, hash router, i18n, formatting model/ Types, document store (undoable, Immer patches), editor UI store geometry/ Pure TS math: vectors, entity hit-testing/measuring, viewport canvas/ react-konva rendering: grid, drawing, overlay, scale bar tools/ Tool behaviours (select, draw, modify, dimension, measure) commands/ Command line parsing, command runner, clipboard io/ Import (images, PDF, DXF) and export (sheets, schedule, SVG, DXF, .gcad) editor/ Editor page: toolbar, properties, status bar, shortcuts projects/ Project list storage/ Dexie database and autosave locales/ en.json, th.json tests/e2e/ Playwright specs
What we are building
A browser-based, AutoCAD-style design tool for garden and landscape architecture, used by a single designer. The owner is Thai; the UI is English + Thai.
Local-first: no backend, no accounts. Projects, pictures, the symbol library and the plant library live in the browser (IndexedDB). .gcad project files move work between browsers.
Stack: React 19 + TypeScript + Vite, react-konva (canvas), zustand + Immer (state and undo), Dexie (IndexedDB), react-i18next, Tailwind 4, fflate (zip), Vitest, Playwright, oxlint, Prettier.
Agreed scope: solo and local-first; import images, PDF, DXF and GIS (DWG later); export PDF/PNG sheets, CSV/XLSX plant schedule, DXF and SVG; symbols as SVG, PNG and DXF blocks.
