Kimai is a professional-grade, open-source time-tracking platform designed for freelancers, agencies, and enterprises that need to track project hours, generate invoices, and analyze time data without vendor lock-in. It solves the pain of manual Excel timesheets by offering automated time logging, customizable reporting, and integrated invoicing—all in a browser-based interface that works on desktop and mobile.
Built with PHP, Symfony, and Doctrine, Kimai supports on-premise deployment via Docker, SSH, or Synology, as well as a managed SaaS version. It integrates with LDAP, SAML (Google Workspace, Azure AD), and offers a robust JSON API for external tool integration, making it ideal for organizations requiring data sovereignty and custom workflows.
What You Get
- JSON API - Full-featured RESTful API for reading and writing time entries, customers, projects, and invoices, enabling integration with CRM, ERP, or custom automation tools.
- Invoicing Engine - Generate PDF and DOCX invoices with configurable templates, entry grouping, custom invoice numbering, and client-specific rates.
- Multi-user & Role-Based Permissions - Assign granular roles and permissions to teams, users, and projects with support for team-based time tracking and access control.
- SAML/LDAP Authentication - Integrate with enterprise identity providers like Google Workspace, Azure AD, or Authentik for centralized user management and single sign-on.
- Two-Factor Authentication (TOTP) - Enforce 2FA for all users to enhance security without requiring third-party tools.
- Advanced Reporting & Analytics - Generate custom reports by user, customer, project, activity, tag, or time period with export options for CSV and PDF.
- Multi-language & Localization - Over 30 language translations supported via Weblate, with full UI localization for global teams.
- Time Tracking Modes - Track time via multi-timer, punch-in/punch-out, or manual entry with support for breaks, holidays, and vacation time.
- Custom Fields - Add user-defined fields to time entries, customers, or projects to capture project-specific metadata.
- Expense Tracking - Log and associate expenses with time entries and invoices, streamlining client billing and reimbursement workflows.
- Audit Trail Logs - Track who made changes to time entries, invoices, or settings for compliance and accountability.
- Plugin Marketplace - Extend functionality with paid and free plugins for integrations, reporting, and workflow automation.
Common Use Cases
- Running a freelance design agency - A designer uses Kimai to track hours per client and project, auto-generates PDF invoices with custom branding, and syncs data to their accounting software via the JSON API.
- Managing a remote software team - A CTO deploys Kimai on-premise to track developer hours across 15+ projects, enforces SAML SSO for team access, and exports time data to Jira and payroll systems.
- Tracking billable hours for legal services - A small law firm uses Kimai to log time by case, apply hourly rates per client, and generate court-compliant time reports with audit trails.
- Controlling project budgets for consulting firms - A consultant sets time and money budgets per client project, receives alerts when thresholds are exceeded, and exports data to QuickBooks for financial reconciliation.
Under The Hood
Architecture
- Symfony-based monolithic structure with clear domain separation via App\ namespace, organizing entities, repositories, forms, and services into cohesive modules
- Extensive use of dependency injection and service containers to decouple components and enable testability
- Event-driven design with custom events and webhook annotations that facilitate loose coupling between core functionality and external integrations
- Repository layer encapsulates complex query logic using QueryBuilder and custom hydrators, preserving data access abstraction
- Form system extends Symfony’s types with domain-specific UI components that manage client-side state and behavior
- Plugin architecture via KimaiPlugin interface allows third-party extensions to integrate without modifying core code
Tech Stack
- PHP 8.3 backend powered by Symfony 6 with Doctrine ORM and migrations for robust data persistence and schema evolution
- Integrated Symfony ecosystem including Security, Serializer, and WebProfiler bundles for enterprise-grade structure and debugging
- Webpack Encore with Babel and Sass enables modular, modern frontend asset compilation
- Rich frontend interfaces built on Bootstrap 5, FullCalendar, Tabler Core, and Chart.js for interactive user experiences
- Dockerized deployment with optimized multi-stage builds for consistent development and production environments
- Comprehensive tooling with PHPUnit, PHPStan, PHP-CS-Fixer, and Codecov for testing, static analysis, and code quality
Code Quality
- Extensive test coverage spanning unit, integration, and domain-specific scenarios with event-based and constraint validation testing
- Strong adherence to Symfony conventions and PSR standards with consistent naming and clear separation of concerns
- Robust type safety through strict typing, PHPDoc annotations, and immutable entity designs
- Comprehensive validation logic with custom constraint validators that handle edge cases and provide meaningful feedback
- Minimal custom exception handling, relying on Symfony’s built-in exception hierarchy and validation system
What Makes It Unique
- Dynamic time rounding system with pluggable strategies and per-day policies, enabling highly customizable time tracking
- Extensible invoice calculator using tagged iterators to dynamically apply project- and user-specific billing rules
- Unified export pipeline with pluggable spreadsheet extractors that decouple data sources from output formats
- Theme-aware avatar generation using intelligent color derivation from user names, eliminating external image dependencies
- Deep Symfony integration with custom console overrides and environment-aware configuration, creating a native, enterprise-grade time tracking solution