Skip to main content

Search, Offline, and Reminders

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.