Zurück zu Lab Notes
FastAPISvelteKitPostgreSQLWeasyPrintDocker

TimeSheet —
endlich so, wie ich es brauche.

Jahrelang habe ich Zeiterfassungstools ausprobiert und bin immer am gleichen Punkt gescheitert: dem Zeitnachweis für den Kunden. Irgendwann habe ich aufgehört zu suchen — und angefangen zu bauen. Zusammen mit Claude Code. Ohne eine Zeile selbst geschriebenen Code.

Das Problem mit allen anderen Tools

Als Selbstständiger brauche ich Zeitnachweise für meine Kunden — monatlich, pro Kunde, übersichtlich. Ich habe viele Tools ausprobiert. Das Scheitern kam immer an der gleichen Stelle: dem PDF-Export.

Das erste Problem: Bei Tageseinsätzen möchte ich eine nicht abrechenbare Mittagspause abziehen — aber dennoch nur einen Zeiteintrag pro Tag statt zwei getrennte Blöcke für Vor- und Nachmittag. Die meisten Tools erzwingen entweder zwei Einträge oder kennen keine Pausenlogik überhaupt.

Das zweite Problem: Das Layout. Zu viele Tools haben Zeitnachweise erzeugt, die ich meinem Kunden nicht zumuten wollte — schlechte Typografie, chaotische Tabellen, und regelmäßig zwei Seiten pro Monat, obwohl eine A4-Seite vollkommen ausreicht. Ein Zeitnachweis ist ein Dokument, das einen professionellen Eindruck hinterlassen soll.

Drei Jahre Excel-Makros

Irgendwann habe ich aufgehört zu suchen und das Problem selbst gelöst: eine Excel-Datei mit VBA-Makros. Was als schnelle Lösung gedacht war, ist über drei Jahre zu einem vollständigen System gewachsen — Kundenverwaltung, Projektverwaltung, Stundensätze, automatisch generierte Tabellenblätter pro Kunde und Monat, ein Zeitnachweis-Layout, das genau meinen Vorstellungen entsprach.

Funktioniert hat es. Aber es war Excel. Keine echte Datenbank, kein Browser-Interface, keine einfache Suche. Und VBA-Makros sind kein Code, der sich gut dokumentiert oder weiterentwickelt.

Von Excel-Makros zur Web-App

Als ich Claude Code entdeckt hatte, war die Entscheidung schnell getroffen. Ich habe Claude Code meine Excel-Makros gegeben — den gesamten VBA-Code — und erklärt, wie ich arbeite: wie ich Kunden anlege, wie ich Projekte strukturiere, wie Zeiten erfasst werden sollen. Und vor allem: wie ein Zeitnachweis auszusehen hat.

Daraus ist TimeSheet entstanden. Ich habe keinen einzigen Buchstaben Code selbst getippt. Die gesamte Anwendung — Backend, Datenbank, API, Frontend, PDF-Erzeugung — ist in Zusammenarbeit mit Claude Code entwickelt worden. Vom ersten Commit bis heute.

Von v1.0.0 bis v1.0.4 — in einer Woche

Das initiale Release entstand am 27. Februar 2026. Noch am selben Tag folgte v1.0.1 mit Dashboard und überarbeiteten PDF-Layouts. Bis zum 2. März waren vier weitere Releases veröffentlicht — VMA, Steuerhochrechnung, Feiertagskalender. So schnell skaliert Entwicklung, wenn man nicht am Code hängt, sondern an Ideen.

Der Zeitnachweis — das Herzstück

Das non-negotiable Ziel war: eine A4-Seite pro Monat und Kunde. Professionell. Gut lesbar. Mit allem, was der Kunde braucht.

Das PDF zeigt alle Tage des Monats in einer Tabelle — Wochenenden grau hinterlegt, Arbeitstage klar strukturiert. Pro Tag: Beginn, Ende, Pause, Netto-Stunden, Kommentar. Hat ein Kunde mehrere Projekte im selben Monat, werden die Einträge tagesweise aggregiert — Start des frühesten, Ende des letzten, Pausen aufsummiert. Unten rechts: meine Unterschrift. Oben rechts: Firmendaten und Logo.

Die Mittagspause wird genau so erfasst, wie ich es brauche: als Pausenminuten am einzelnen Zeiteintrag — 30, 45 oder 60 Minuten, direkt abgezogen. Ein Eintrag pro Tag, sauber in der Tabelle, korrekte Netto-Stunden. Keine zwei Einträge, kein Formatierungsproblem.

Was danach noch kam

Sobald das Fundament stand, kamen die Ideen. Dinge, die ich in keinem anderen Tool je gesehen hatte — weil kein anderes Tool auf meinen spezifischen Kontext als Selbstständiger ausgelegt ist.

  • Monats-, Jahres- und Kundenstatistiken — wie viele Stunden pro Kunde, pro Projekt, pro Monat. Mit Filtermöglichkeit und Gesamtbeträgen netto und brutto.
  • Verpflegungsmehraufwände (VMA) — bisher stundenlange Excel-Arbeit zum Jahresende. Jetzt direkt am Zeiteintrag hinterlegbar. Liste drucken — fertig. Die Steuerberaterin bekommt ihre Übersicht, ich habe keinen Aufwand mehr.
  • Steuerhochrechnung — auf Basis der aktuellen Steuerdaten eine grobe jährliche Steuerbelastung als Solo-Selbstständiger. Kein Ersatz für den Steuerberater, aber ein ehrlicher Blick auf das, was vom Umsatz übrig bleibt. Inklusive PDF-Export.
  • Feiertagskalender Baden-Württemberg — Feiertage und Schulferien direkt im Zeiterfassungskalender sichtbar, farbig markiert, mit Namen.
  • Abrechnung — Monate pro Kunde als abgerechnet markieren. Klare Übersicht, was bereits fakturiert wurde und was noch offen ist.

Stack

Backend Python · FastAPI · SQLAlchemy · Alembic · Uvicorn
Datenbank PostgreSQL 16 · Schema-Migrationen via Alembic
PDF WeasyPrint · Jinja2-Template · A4-Layout · Logo + Unterschrift
Frontend SvelteKit · TypeScript · Tailwind CSS · SPA-Modus
Sicherheit CSRF-Schutz · Session-Cookies · Rate-Limiting · bcrypt
Deployment Docker Compose · docker-prod · Portainer Stack
Entwicklung Claude Code (Anthropic) · v1.0.0 → v1.0.4 · Basis: Excel-VBA-Makros · kein manuell geschriebener Code
Austausch

Homelab-Projekte machen mehr Spaß, wenn man darüber reden kann. Wenn ihr Fragen zu einem meiner Artikel habt, selbst an ähnlichen Themen arbeitet oder einfach Ideen zu Homelab-Technologien und KI austauschen möchtet — ich bin immer dabei. Schreibt mich einfach an.

frank [at] graziani-it.de