{ "_meta": { "updated_at": "2026-06-09T00:00:00Z", "commit": "01f7456b81dd55d477d0bd7530df818f61a873c2", "version": 1 }, "languages": ["TypeScript", "SQL"], "frameworks": ["Hono 4.12.23", "React 19", "Drizzle ORM 0.45.2"], "tools": [ "Vite 8.0.16", "vite-plugin-pwa 1.3.0", "Vitest", "drizzle-kit 0.31.10", "ESLint", "node-cron" ], "build_system": "pnpm workspaces + tsc (api) + vite build (pwa)", "test_framework": "Vitest", "package_manager": "pnpm 11.5.1", "runtime": "Node.js 22 LTS", "database": "MariaDB via mysql2 3.22.4", "cache": "Redis (ioredis — planned for Phase 4 list sync; not yet wired)", "auth": "Authelia OIDC — authorization_code + PKCE via @hono/oidc-auth 1.8.3", "calendar_backend": "Fastmail CalDAV via tsdav 2.2.2 + ical.js 2.2.1", "calendar_ui": "@schedule-x/calendar 4.6.0", "server_state": "@tanstack/react-query 5.101.0", "client_state": "zustand 5.0.14", "content_formats": [ "TypeScript (source)", "SQL (Drizzle migrations)", "iCalendar / VCALENDAR (CalDAV payloads)", "Markdown (planning docs)" ], "infra": { "hosting": "Unraid + Docker Compose", "networking": "Pangolin/Newt tunnel (no open ports), split-DNS" }, "workspaces": { "root": "familysync (pnpm workspace root)", "api": "@familysync/api — apps/api", "pwa": "@familysync/pwa — apps/pwa" } }