Overview
Discover what makes Kimai powerful
Kimai is a full‑stack, PHP‑based time‑tracking platform designed for both freelancers and enterprise teams. At its core it exposes a **RESTful JSON API** that allows programmatic access to all domain entities (users, customers, projects, activities, invoices). The UI is a modern single‑page application built with **Symfony** and **Twig**, leveraging server‑side rendering for SEO while offering an interactive dashboard through JavaScript. The application is released under the AGPL‑3 license, encouraging community contributions and allowing commercial use as long as derivative works remain open source.
Backend
Database
Frontend
Containerization
Overview
Kimai is a full‑stack, PHP‑based time‑tracking platform designed for both freelancers and enterprise teams. At its core it exposes a RESTful JSON API that allows programmatic access to all domain entities (users, customers, projects, activities, invoices). The UI is a modern single‑page application built with Symfony and Twig, leveraging server‑side rendering for SEO while offering an interactive dashboard through JavaScript. The application is released under the AGPL‑3 license, encouraging community contributions and allowing commercial use as long as derivative works remain open source.
Technical Stack & Architecture
- Backend: Symfony 6.x framework, PHP 8.1+ (with support for 8.2‑8.4). Uses Doctrine ORM for data persistence and the Symfony Messenger component for asynchronous tasks (e.g., invoice generation, email notifications).
- Database: MariaDB or MySQL (8.0+ recommended) with optional support for PostgreSQL via community forks.
- Frontend: Twig templates, Bootstrap 5, jQuery for legacy compatibility; newer releases expose a Vue.js/React‑style API for custom dashboards.
- Containerization: Official Docker images (
kimai/kimai2) are available on Docker Hub, offering both FPM‑only and Apache bundles. Compose files are provided for common cloud providers (Hetzner, DigitalOcean). - Authentication: Pluggable adapters for LDAP, SAML, OAuth2, and database users. Two‑factor authentication via TOTP is integrated out of the box.
Core Capabilities for Developers
- Extensible Plugin System: Plugins are Composer packages that register Symfony bundles. The plugin API exposes hooks for UI injection, database migrations, and custom services.
- Webhooks & Events: Kimai emits Symfony events (
ActivityCreatedEvent,InvoiceGeneratedEvent) that plugins or external services can listen to. - Custom Fields & Filters: Users can define arbitrary fields on projects or activities; these are exposed through the API and searchable via a query language.
- Reporting & Export: Built‑in CSV/Excel exporters and an advanced query builder allow developers to build custom reports.
- Multi‑tenant Support: The data model supports separate workspaces via a
teamentity, enabling isolated projects per department or client.
Deployment & Infrastructure
Kimai is a stateless PHP application; session data can be stored in Redis or the database, making it horizontally scalable behind a load balancer. The Docker images are minimal and can be deployed on any LAMP stack or container orchestrator (Kubernetes, Docker Swarm). For high‑availability, a read‑replica MySQL setup and Redis cache are recommended. Backups are simple SQL dumps, while incremental backups can be scripted with mysqldump and stored in object storage.
Integration & Extensibility
- API First: The JSON API follows REST conventions and is documented with OpenAPI/Swagger. Rate limiting, OAuth scopes, and HATEOAS links are supported.
- SDKs & Clients: Community maintained SDKs exist for PHP, Python, and JavaScript.
- Webhooks: Configure outbound webhooks to trigger external CI/CD pipelines, Slack notifications, or custom dashboards.
- Custom Themes: The Twig templating system allows overriding any template; CSS can be customized via SCSS variables.
- Command Line: Symfony console commands expose CRUD operations, data migrations, and maintenance tasks (e.g.,
kimai:generate-invoices).
Developer Experience
The project follows Symfony best practices: autoloading, dependency injection, and a clear service container. Documentation is split into user guides and developer references, with code samples for plugin creation and API consumption. The community is active on GitHub Issues, a dedicated Discord channel, and the kimai mailing list. Continuous integration via GitHub Actions ensures high code quality (unit, functional tests, coverage metrics). The AGPL license encourages contributions while protecting commercial users from proprietary lock‑in.
Use Cases
- Enterprise Time Tracking – Deploy Kimai on an internal network to collect billable hours, generate invoices, and produce compliance reports.
- Freelancer Toolchain – Use the API to integrate with a personal project management tool or custom invoicing script.
- SaaS Platform – Spin up multiple Kimai instances in a Kubernetes cluster, each isolated by namespace, to offer time‑tracking as a service.
- Custom Reporting – Build dashboards in Grafana or Power BI by querying Kimai’s API and storing data in a time‑series database.
Advantages for Developers
- Open Source & AGPL: No licensing fees, full source access, and freedom to modify the core.
- Modern Stack: Symfony 6+ with PHP 8 ensures performance and type safety.
- Extensible Architecture: Plugins, events, and a robust API reduce the need to fork the core.
- Scalable Deployment: Stateless PHP and Docker support horizontal scaling, caching, and CI/CD pipelines.
- Rich Feature Set: Built‑in multi‑timer, punch‑in/out, 2FA, multi‑language support, and customizable roles reduce development time for common use cases.
Kimai’s blend of a mature PHP framework, extensible plugin ecosystem, and comprehensive API makes it an attractive choice for developers seeking a self‑hosted time‑tracking solution that can grow with their organization’s needs.
Open SourceReady to get started?
Join the community and start self-hosting Kimai today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Revive Adserver
Open‑source ad serving for publishers and networks
docassemble
Automated guided interviews and document assembly
CUPS
Open-source, standards‑based printing system for Unix-like OS
Frappe Helpdesk
Open-Source Ticket Management for Seamless Customer Support
TagSpaces
Organize files offline with tags and local web clipping
What to Cook?
Suggest recipes based on your pantry
