Commit the generated PNG icons (192/512/maskable + apple-touch) and their
SVG sources so builds work without rsvg-convert: Vite copies public/ into
dist/ as-is, and the Docker build stage cannot regenerate them.
- Add web app manifest, maskable/apple-touch icons, and a production-only
service worker that caches the app shell for offline start
- Improve mobile UX: responsive breakpoints from ~320px, 44px touch
targets, safe-area insets, dvh heights, 16px inputs to avoid iOS zoom
- Serve .webmanifest with correct content type in the Go static handler
- Document PWA behavior and mobile features in the README
- Add ThemeToggle component (Auto / Dark / Light) to all views
- Store preference per browser and detect system preference live
via prefers-color-scheme
- Apply theme before first render in index.html to prevent flash
- Extend CSS with light theme variables and refactor glass styles
Initial project setup for a privacy-focused, self-hosted scheduling app:
- Go backend with JWT auth, SQLite storage, and chi router
- Calendar integrations via Google OAuth (FreeBusy), CalDAV, and ICS links
- Public booking pages with configurable slots and booking requests
- AES-256-GCM encryption for stored provider tokens
- Vue 3 + TypeScript frontend with Vite, Pinia, and Vue Router
- Docs, .gitignore, and .env.example for local development