Ka-Note/CLAUDE.md

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 everywheredeletedAt field, never hard-delete
  • daily-log — hardcoded default context (always meeting mode)
  • processedInCurrentSession — session-only state (sessionStorage), not synced
  • isCollapsed — 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)