Date de la création de cette note : 2026-04-27.
Quel est l'objectif de ce projet ?
Construire un proxy Toggl : un service Node.js (avec SvelteKit si une interface devient nécessaire) qui centralise mes données de time-tracking dans une base PostgreSQL que je contrôle.
Avoir une base de données PostgreSQL toujours à jour avec l'intégralité de mon historique Toggl, pour pouvoir l'utiliser comme source de vérité — notamment pour brancher un LLM dessus et générer des bilans temporels (par semaine, par mois, par activité).
Contrainte fondamentale : ne pas casser mon workflow de saisie actuel. Je continue à utiliser Toggl normalement.
Pourquoi je souhaite réaliser ce projet ?
J'utilise Toggl depuis trois ans pour tracker mon temps — via l'application desktop et surtout l'application mobile. Toggl est une solution propriétaire, et je veux pouvoir exploiter mes données de façon autonome : les enrichir, les corriger, les interroger avec un LLM, les conserver indépendamment de la plateforme.
Modèle de données
Deux tables principales :
time_entries (état courant)
id — identifiant internetoggl_uid — identifiant source Togglstarted_at, ended_at — datetime de début et de fintags — liste de tags (état courant)description — titre/description courte (état courant)time_entry_audit_log (historique des modifications)
id — identifiant interneentry_id — référence vers time_entriessource — origine de la modification (toggl, manual, llm)field_changed — champ concernéold_value, new_value — avant / aprèschanged_at — timestamp de la modificationLe principe clé : conserver la donnée brute intacte et tracer chaque modification avec sa source. Les données importées de Toggl sont marquées source: toggl, les corrections manuelles source: manual, et les corrections automatiques source: llm. Cela permet de ne jamais perdre ce qui a été saisi à la main, tout en gardant une traçabilité complète de l'évolution de chaque entrée. C'est le principe Bronze de l'Architecture à médaillon appliqué via un audit log : les événements source: toggl jouent le rôle du Bronze, les corrections celui de l'Argent.
Implémentation — Première itération
Deux fonctionnalités, dans cet ordre :
Pas d'API HTTP pour l'instant — accès direct SQL. Le schéma doit néanmoins être conçu pour accueillir une API REST dans le futur.
Contraintes liées au plan Free :
Évolutions futures
Repository de ce projet :
Ressources :
Priorité immédiate : avoir le pipeline d'import + sync opérationnel. Tout le reste vient après.