solidtime is an open-source time tracking application designed for freelancers and agencies. It provides a full-stack solution with a PHP backend (using a custom Laravel-like framework with strict typing) and a Vue 3 frontend served via Inertia.js. The system supports multi-tenant organizations with role-based permissions (Owner, Admin, Employee, Placeholder), project and task management, client and tag tracking, billable rates, goals, and detailed reporting with export to CSV, PDF, ODS, and XLSX. It also includes importers for Toggl, Clockify, Harvest, and generic CSV formats, as well as a native solidtime format. The architecture is a monolith with a RESTful API (versioned under /api/v1) and web controllers driven by Inertia.js. The backend uses a custom PHP framework that resembles Laravel but employs non-standard syntax (declare strict_types, use traits, fn closures). Key entry points include API controllers for time entries, projects, clients, tags, goals, reports, and import/export; console commands for administrative tasks, telemetry, and database consistency checks; and a Filament admin panel for CRUD operations. The frontend is built with Vue 3, Pinia stores, TanStack Query for caching, and a shared UI component library (packages/ui) that provides reusable primitives like dialogs, selects, calendars, and context menus. Data flows center around time entries, which are created via a timer or manual entry, associated with projects, tasks, clients, and tags, and aggregated for reporting and goal tracking. The system uses PostgreSQL as its primary database, with Redis for caching and queueing. External dependencies include a mail driver (Mailpit in dev), storage drivers (local/S3), and optional services like Gotenberg for PDF rendering and Paddle for subscriptions. The codebase is extensively tested with PHPUnit (unit/feature), Vitest (JS unit), and Playwright (E2E), and includes CI/CD pipelines for building, linting, and testing.
TaskNotes is a mature Obsidian plugin that transforms task management into a note-based system. Each task is a separate Markdown file with YAML frontmatter, providing full portability and no proprietary database. The plugin offers a comprehensive set of features: task lists, Kanban boards, calendar views (via FullCalendar), agenda view, mini calendar, Pomodoro timer, time tracking, recurring tasks (RRULE with per-instance completion), dependencies (F2F), custom statuses/priorities, user-defined fields, natural language input for task creation, and external calendar sync (Google Calendar, Microsoft, ICS/CalDAV). It also includes an HTTP API, CLI commands, webhooks, and MCP (Model Context Protocol) integration for AI agents. The architecture is event-driven, with a central plugin class that coordinates services, modals, editors, and views. Views are built on Obsidian's Bases system, allowing declarative configuration via .base files. The codebase is heavily tested with over 200 unit tests, many targeting specific GitHub issues, and a suite of Playwright e2e tests running against a real Obsidian vault. The project demonstrates strong engineering practices with modular design, reusable components (EventEmitter, VirtualScroller, DOMReconciler, RequestDeduplicator), and comprehensive i18n support (9 UI languages).
Patina is a local-first desktop time tracking application built with the Tauri framework (React frontend + Rust backend). It automatically monitors foreground application and web usage, providing activity classification, data visualization through dashboards and heatmaps, productivity tools (Pomodoro timer, reminders), and data export/backup capabilities. The application emphasizes privacy with local-first data storage while offering optional remote backup via WebDAV. It features a modular architecture with clear separation between frontend/UI, backend/services, and platform abstractions, communicating through Tauri IPC.
Kimai is a self-hosted, open-source time-tracking application built with PHP 8.3+ and Symfony 6/7. It provides a full-featured web interface and REST API for recording timesheets, managing projects/customers/activities, generating invoices, exporting data (PDF, XLSX, CSV, HTML), and producing reports. The architecture follows a classic Symfony monolith with Doctrine ORM, Twig templating, and Webpack Encore for frontend assets. It supports multi-user, multi-timezone, multi-language, LDAP/SAML authentication, two-factor authentication, and a plugin system via tagged services and compiler passes. The codebase is heavily event-driven, with over 70 domain events and subscribers, and includes a rich set of dashboard widgets, custom form types, and validation constraints. The repository is actively maintained with frequent commits, extensive test coverage (PHPUnit), and continuous integration pipelines.
This is a well-crafted Go CLI application for interacting with the Clockify time-tracking API. It provides a comprehensive set of commands for managing time entries, projects, tasks, clients, tags, workspaces, and users. The architecture follows the GitHub CLI pattern with Cobra commands, Viper configuration, and dependency injection via a Factory interface. The application supports both interactive and non-interactive modes, multiple output formats (table, JSON, CSV, Markdown, Go templates), and name-to-ID resolution for convenience. Key features include a step-pipeline pattern for composable time entry modifications, a generic pagination helper for API list endpoints, and a search package with approximate matching. The codebase is well-tested with extensive unit tests using generated mocks, and the project is actively maintained with a robust CI/CD pipeline (GoReleaser, GitHub Actions, Netlify docs site).
This repository implements a WakaTime language server extension for the Zed editor. It consists of two Rust crates: a Zed extension (src/lib.rs) that manages downloading and launching the wakatime-ls language server and the wakatime-cli binary, and the language server itself (wakatime-ls/src/main.rs) that translates editor document events (open, change, save) into heartbeats sent to the WakaTime API via the external CLI. The extension uses Zed's extension API for lifecycle management and binary caching, while the language server is built with tower-lsp and tokio, providing robust async handling of LSP notifications. The architecture is a clean plugin-plus-LSP design where the extension is a thin orchestrator and the language server does the actual event processing and API communication. The codebase is well-structured, uses modern Rust patterns, and includes CI/CD configuration for cross-platform releases.
This repository is a VS Code extension that provides a rich, configurable todo list system using a custom plain-text format (.todo, .todos, .task, etc.). It enables users to create, edit, toggle states (box, done, cancelled), archive tasks, track time with a timer, generate project statistics, and scan embedded todos within code files using external search tools (ag, rg). The extension contributes two custom activity bar views (Files and Embedded) and status bar items, all driven by a comprehensive configuration system for symbols, colors, tags, and formatting. The architecture follows a modular design with a clear separation of concerns: document parsing into typed items (Todo, Project, Comment, Tag, etc.), decorator classes for syntax highlighting, utility modules for file operations, time formatting, statistics computation, and embedded code scanning. The item classes form a clean class hierarchy with static `is()` methods for identification and state manipulation methods. The embedded providers abstract over multiple search backends (JavaScript, ag, rg) with a common interface, and the base TreeDataProvider uses an event emitter pattern to notify view updates. The extension is written in TypeScript, bundled with webpack, and relies on several utility libraries (lodash, moment, micromatch, etc.). While the codebase demonstrates solid engineering practices—reusable components, consistent naming, and a config-driven design—it has notable maintenance risks: heavy reliance on complex regexes for parsing, a moderately large dependency list, and no visible test infrastructure (no test files found in the file tree). The changelog mentions regressions and a fundraising prompt, indicating limited maintenance bandwidth. Overall, it is a functional and feature-rich extension that does its job well, but its internal complexity and lack of tests could hinder long-term reliability.
Open-Pomodoro CLI is a command-line Pomodoro technique tracker built with Go and Cobra. It implements the Open Pomodoro Format for data storage, allowing users to start work sessions, take breaks, track completed pomodoros, view history, configure settings, and execute hooks at state transitions. The application features a modular architecture with separate packages for command handling (cmd/), output formatting (format/), and hook execution (hook/). It stores data in ~/.pomodoro/ as text files and supports multiple output formats including human-readable, JSON, and iCal. The tool integrates with tmux for status display and provides a comprehensive set of subcommands for managing the Pomodoro workflow.
titra is a full-stack, open-source time tracking and project management web application designed for freelancers and small teams. It is built on Meteor.js 3.x with a monolithic architecture spanning server/client/imports directories, using MongoDB as its primary data store, Blaze templates for the UI, and Rspack for bundling. The application provides core time tracking features (day/week/month calendar views, timeline, timers, bulk entry), project/task management with Gantt charts, dashboards with password-protected sharing and slug URLs, CSV import/export, and rich reporting tables. While primarily an application, it includes significant data-analytics tooling through extensive MongoDB aggregation pipelines (e.g., projectStats, timecard totals) used to power its charts and reporting views, giving it a hybrid nature. The architecture relies heavily on Meteor's reactive publication/subscription model and ValidatedMethod mixins for authenticated, transaction-logged server methods. A standout feature is its integration layer: it supports sandboxed JavaScript execution via Node's VM module for inbound/outbound data interfaces and webhook verification, alongside LDAP, OIDC, Google Workspace (Gmail/Calendar), and OpenAI integrations. The UI is polished with a custom SCSS theming system (dark/light modes) built on Bootstrap, wrapping Frappe charts, datatables, and Gantt charts. External dependencies include MongoDB, Google APIs, LDAP, and multiple third-party SaaS tools (Wekan, Zammad, GitLab). Maintenance is active with a recent commit and zero Dependabot alerts, but technical drift is medium due to reliance on deprecated Blaze templates, a monolithic ~1200-line SCSS file with heavy !important usage, and known minor bugs (e.g., an inverted OpenAI API key guard, an undefined variable in projectlist.js, and duplicated dashboard components). The codebase mixes older callback styles with async/await, indicating ongoing modernization. Despite these issues, the core architecture is solid, well-separated by domain (projects, timecards, users), and offers several genuinely reusable, well-crafted utility components, making it a strong candidate for teams seeking a self-hosted time tracking solution or studying Meteor best practices.
This repository is a comprehensive curated knowledge base and reference directory focused on time tracking, productivity methodologies, and related tools. The dominant character is a flat collection of over 3000 markdown files under `details/`, each describing a specific software tool, productivity technique, author, or research finding in a structured format (overview, features, pricing, use cases). While primarily a reference resource, the repo also contains a few functional software components, including a Spring Boot + Vaadin reporting app for Toggl (toggl-reporter), a Django monorepo with REST API and Keycloak auth for time tracking (timed), a Home Assistant custom component (ha-toggl-track), and a Lua SDK (Qmonix). These are small reference implementations that demonstrate integration patterns. The repository serves as a one-stop guide for individuals and teams evaluating time tracking solutions, learning productivity methods, or building integrations. It cites numerous statistics and studies, but many entries are stale or incomplete (e.g., research stub pages with placeholder text). The code components are basic and not production-ready without further development.