2.0 KiB
2.0 KiB
CLAUDE.md
Project Overview
Ka-Note — a local-first meeting/topic management PWA with offline support and sync. Rebuilt from the RollingAgenda prototype. The HTML prototype (rolling_agenda_proto.html) remains the design reference.
Tech Stack
- Frontend: SvelteKit (SPA mode, adapter-static) + Tailwind CSS + Dexie.js (IndexedDB)
- Backend: Hono (Node.js) + SQLite + Drizzle ORM
- Monorepo: npm workspaces (
ka-note/shared,ka-note/client,ka-note/server)
Build & Run
# Install dependencies (from ka-note/)
npm install
# Dev mode (client + server parallel)
npm run dev
# Client only (http://localhost:5173)
npm run dev -w client
# Server only (http://localhost:3001)
npm run dev -w server
# Build all
npm run build
# Docker
docker-compose -f ka-note/docker-compose.yml up --build
Architecture
ka-note/
├── shared/ — Domain types (SyncEntity, AgendaContext, Topic, HistoryEntry, Rating)
├── client/ — SvelteKit SPA (Tailwind, Dexie.js for local DB)
│ └── src/lib/
│ ├── components/ — Svelte components
│ ├── db/ — Dexie schema, repositories, seed data
│ ├── stores/ — Svelte stores wrapping Dexie liveQuery
│ ├── utils/ — Tree parser, extractors
│ └── actions/ — Svelte actions (drag-drop)
├── server/ — Hono API (REST + WebSocket sync)
└── docker-compose.yml
Key Concepts
- Soft-delete everywhere —
deletedAtfield, never hard-delete daily-log— hardcoded default context (always meeting mode)processedInCurrentSession— session-only state (sessionStorage), not syncedisCollapsed— UI-only state (Svelte store), not persisted- Inline tags:
-> NAME(assignment),@P:PROJECT(project ref),@NAME(person mention)
Other Files
vorlagen/— UpNote markdown templates (design reference)rolling_agenda_proto.html— full HTML prototype (1135 lines, all features)