Files
familysync/.planning/intel/stack.json
T

44 lines
1.4 KiB
JSON

{
"_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"
}
}