Zeit.
Overview
A private, self-hosted time-tracking PWA with offline work entries, absence accounting and monthly reports. Production application; login required.

Tracking work and absences
Zeit. is a production-deployed, private time-tracking application with a German interface. It records work to the minute across multiple worksites and accounts for vacation, sick leave and time off. The accounting engine derives overtime and monetary balances from versioned records rather than treating a displayed balance as the source of truth.
Offline storage and synchronization
The Progressive Web App supports installation on iPhone through Safari and on desktop. After an initial online synchronization, IndexedDB retains synchronized history and queues local work and absence operations. Reconnecting, returning to the app or manually synchronizing sends pending operations to the server. Rejected or conflicting changes retain the original input for explicit review; accounting remains server-authoritative.
The service worker caches public assets and an offline application shell, not authenticated HTML or API responses. Synchronization runs in the foreground. Browser storage can be evicted; background execution is not guaranteed.
Closings and reporting
Monthly closings produce a defined accounting snapshot. The reporting workflow maps closing data into a Google Sheets template and publishes through the Google API. Time and monetary calculations, reporting and synchronization are separate application boundaries.
Implementation and access
Nuxt 4, Vue 3 and TypeScript provide the application, with Vuetify UI components. Drizzle ORM accesses PostgreSQL; Better Auth protects the private application. Docker supports self-hosted deployment.
The production link opens a private application that requires login, not a public demo. No public registration or demo account is offered here.