# Deklinationstrainer A daily-practice German declension trainer. Self-hosted so your progress actually saves. ## Deploy to Coolify ### One-time setup 1. Push these files to a git repo (GitHub / Gitea / whatever Coolify is connected to). 2. In Coolify, create a new **Application**: - Source: your git repo - Build pack: **Nixpacks** (auto-detects Vite) or **Static** - Build command: `npm run build` - Publish directory: `dist` - Port: not needed for static output (Coolify serves it directly) 3. Add a domain (e.g. `deklination.yourdomain.com`). Coolify provisions HTTPS via Caddy/Traefik automatically. 4. Deploy. Visit the URL on any device. ### Local dev ```bash npm install npm run dev # http://localhost:5173 npm run build # outputs to ./dist ``` ## On iPhone Open the URL in Safari, tap Share → **Add to Home Screen**. It opens fullscreen like a native app, and progress saves in localStorage across reboots, sessions, and app closes. ## Storage The app tries `window.storage` first (Claude artifact environment), then falls back to `localStorage`. When self-hosted, only localStorage runs, which iOS Safari persists reliably. To wipe progress: open browser devtools → Application → Local Storage → delete the `gd-v10` key. Or on iPhone: Settings → Safari → Advanced → Website Data → search your domain → delete.