Frontend
React 18 + Vite SPA under frontend/ manages note editing, client-side crypto, and collaboration UI.
frontend/) talking to a Go Fiber API (backend/).Frontend
React 18 + Vite SPA under frontend/ manages note editing, client-side crypto, and collaboration UI.
Backend
Go Fiber API under backend/ exposes REST, WebSocket, rate limits, and background jobs.
Encryption
Client libsodium + server ChaCha20-Poly1305 enforce zero-knowledge storage for every note.
Database
PostgreSQL schema lives in backend/database/schema.go with encrypted columns throughout.
frontend/src/main.tsx; it loads per-user keys via cryptoService.SecureAPI (JWT + CSRF token handling) to /api/v1/*.backend/server/app.go wires Fiber middleware (recover, logging, compression) before routes.go adds security controls.backend/services/ seed the default admin, rotate encryption keys, and purge trashed notes daily.frontend/src/ React UI & encryption helpersbackend/server/ Fiber bootstrap + health handlersbackend/routes.go Middleware stack + REST routingbackend/services/ Background jobs & schedulersbackend/websocket/ Collaboration hub and message typesdocker-compose.yml)./api/v1/health/live (liveness) and /api/v1/health/ready (gated by server/ReadyState flags).ENABLE_METRICS=true to mount Prometheus middleware from backend/metrics/prometheus.go.