Search, Offline, and Reminders
Global Search
Open global search with Cmd+K / Ctrl+K. It looks across your own finance data:
- accounts by name
- income by source
- recurring expenses by name
- daily expenses by description
- transfers by description
Enter at least 2 characters (partial, case-insensitive match). At most 20 results are shown, ordered accounts, income, recurring expenses, daily expenses, transfers. Use the arrow keys and Enter to open a result. Categories and documents are not searched. Amounts are shown in their original currency, and some result subtitles are always in German.
PWA and Offline Behavior
Cashlytics is installable as a Progressive Web App in supported browsers. The service worker is only active in production builds.
- Static assets (
/_next/static) are cached. - Pages are loaded from the network first; offline, Cashlytics shows a saved copy of a page you visited before, no older than 7 days. If none exists, the offline page (
/~offline) is shown. - API responses (
/api/*) are never cached. - The page cache is bound to the signed-in user and is deleted when you sign out (and when a session expires or a password is reset).
Offline mode is read-only: you cannot save or change data without a connection.
Push Payment Reminders
If push notifications are configured and enabled (see Settings), Cashlytics sends one push notification per recurring expense due tomorrow ("Zahlung morgen fällig", amount in the account currency; text is German). Income and transfers do not trigger reminders. Clicking a notification opens /expenses.
Operators need VAPID keys and a scheduled GET call to /api/cron/upcoming-payments with the Authorization: Bearer <CRON_SECRET> header. Without CRON_SECRET the endpoint returns HTTP 500. The daily insights job uses the same authentication on /api/cron/insights.