solidtime
Modern open-source time tracker for freelancers and agencies with invoicing, multi-org support, and Toggl/Clockify migration built in.
solidtime is a self-hostable, open-source time-tracking application built with Laravel and Vue.js that gives freelancers and agencies full control over their billable hours, client projects, and reporting. It combines a fast, keyboard-driven interface with a comprehensive feature set — from live time tracking and multi-level billable rates to PDF invoice generation and shared public reports — all without a subscription or usage limits.
The application runs as a containerized service deployable via Docker Compose, using PostgreSQL for data storage and Laravel Octane for high-performance request handling. A progressive web app (PWA) frontend built with Vue 3, Inertia.js v2, and TanStack Query delivers a near-native experience across desktop and mobile browsers, with offline-capable service workers.
solidtime is actively developed with regular releases, an extensive E2E test suite built with Playwright, and an extension system that powers the cloud edition while keeping the self-hosted core fully unlocked. A Filament-based admin panel, REST API with OpenAPI 3.1 specification, and auto-generated TypeScript client round out a stack built for maintainability and developer ergonomics.
Unlike many open-source trackers that gate key features behind a commercial license, solidtime ships its full feature set under AGPL-3.0, with an optional cloud tier for teams that prefer managed hosting. Import scripts for Toggl, Clockify, and Harvest make migrating existing data straightforward.
What You Get
- Live Time Tracker - A persistent sidebar timer that follows you across every page, lets you assign projects and tasks mid-session, and supports a discard option to drop accidental entries without leaving your workflow.
- Calendar View for Time Entries - A visual drag-and-drop calendar that displays your time entries in a weekly grid, with configurable snap intervals, grid scale, and visible time range stored per-browser for a personalized layout.
- Command Palette - A keyboard-driven command palette (Cmd/Ctrl+K) that surfaces all actions — starting timers, navigating pages, searching clients and projects — without touching the mouse.
- Multi-Level Billable Rates - Set hourly rates at four independent levels (organization, member, project, project-member) so the correct rate always applies automatically regardless of who logs time on which project.
- Reporting and Shared Reports - Generate detailed aggregate or line-item reports with tag/client/project/task grouping, filter for entries with no assignment, and share reports publicly via a secure token-based URL.
- PDF Invoice Generation - Render professional invoices from tracked time using Gotenberg’s headless Chromium renderer, with Blade templates for full layout control and per-organization branding.
- Import from Toggl, Clockify, and Harvest - Purpose-built importers for Toggl, Clockify, Harvest, and generic CSV formats migrate your historical time entries, clients, projects, and tags in one step.
- Role-Based Multi-Organization Access - Create multiple organizations under one account, invite members with Owner/Admin/Manager/Employee roles, and control whether employees can self-manage tasks within their assigned projects.
Common Use Cases
- Freelancer consolidating client billing - A freelance developer logs time across five active clients in solidtime, assigns project-level rates to each, and generates a PDF invoice for each client at month-end without touching a spreadsheet.
- Agency migrating off Toggl - A 12-person design agency exports their Toggl workspace history into solidtime using the built-in Toggl importer, preserving all tags, clients, and project assignments before cancelling their subscription.
- Remote team with overlap prevention - A distributed engineering team enables the ‘prevent overlapping time entries’ organization setting so managers can trust that reported hours are accurate and non-duplicated across concurrent tasks.
- Client receiving a shared report link - An agency shares a secure public report URL with a client so they can view billable hours grouped by task and week in real time without giving the client an account.
- Operations team auditing internal time allocation - A company uses the timesheet view and detailed reporting with tag grouping to break down how hours are split between billable client work and internal overhead across the quarter.
Under The Hood
Architecture solidtime is built on a clean layered architecture where HTTP controllers remain thin orchestrators, delegating all meaningful business logic to a rich service layer that includes dedicated services for time entry aggregation, billable rate resolution, member lifecycle, invitation flows, deletion cascades, and report export. An extension autoloader enables the cloud billing implementation to be injected at boot time without touching core code, keeping the self-hosted build completely unmodified. Policies enforce authorization at the model level, request classes carry validation, and custom exception types produce consistent structured API responses, resulting in a codebase where each layer has a single, well-defined responsibility.
Tech Stack The backend runs PHP on Laravel 12 with Octane for high-throughput request handling, Passport for OAuth2 API token management, Fortify for authentication flows, and Filament for the admin panel. Data is stored in PostgreSQL 15 accessed via Eloquent, with computed attributes and audit logging baked into core models. The frontend is a Vue 3 single-page application communicating via Inertia.js v2, with TanStack Vue Query managing server state and cache invalidation, Pinia for local state, Reka UI and Radix Vue for accessible component primitives, and ECharts for reporting visualisations. An OpenAPI 3.1 specification is generated from the codebase via Scramble and fed into openapi-zod-client to produce a type-safe TypeScript API client, eliminating manual contract maintenance. PDF rendering uses Gotenberg’s headless Chromium microservice via a PHP SDK, and Playwright drives a comprehensive E2E test suite against the full stack.
Code Quality Code quality is consistently high across the stack. PHPStan at Level 7 enforces strict static analysis, Laravel Pint handles PHP formatting, and strict type declarations appear on every file. The test suite spans PHPUnit unit tests for individual services, feature tests for all API endpoints, Filament admin tests, and an extensive Playwright E2E suite covering more than twenty user journeys from authentication and calendar interaction to import-export and shared reports. Tests follow the Arrange/Act/Assert pattern with descriptive method names, and the CI pipeline runs the full suite with a PostgreSQL matrix on every pull request. Error handling relies on typed exception hierarchies that the framework serialises to structured JSON, preventing silent failures at API boundaries.
What Makes It Unique
The most architecturally distinctive aspect of solidtime is its end-to-end type safety chain: the OpenAPI specification generated from PHP source feeds openapi-zod-client to produce Zod-validated TypeScript API bindings, meaning a backend field change surfaces as a type error in the frontend build rather than a runtime failure. The pluggable extension system — a lightweight PHP autoloader in an extensions/ directory — allows the commercial cloud edition to swap the no-op BillingContract with a subscription-aware implementation without any forks or conditional compilation, a pattern unusual for open-source SaaS applications of this scale. The calendar view with configurable snap intervals and the command palette together reflect a product philosophy focused on reducing friction for power users who live in the tracker all day.
Self-Hosting
solidtime is released under the GNU Affero General Public License v3.0 (AGPL-3.0). In practical terms, AGPL-3.0 means you can use, modify, and redistribute the software freely, but any modifications you deploy as a network service must themselves be released under AGPL-3.0. For most self-hosting teams — those running solidtime internally for their own time tracking without distributing it to third parties as a service — this has no meaningful restriction. Developers who want to build proprietary extensions or integrate solidtime into a commercial SaaS product of their own should review the license requirements carefully or contact the maintainers about a commercial arrangement.
Running solidtime yourself requires a server capable of hosting Docker containers. The officially supported deployment path uses Docker Compose with a PostgreSQL database container, a Laravel application container, and a scheduler/worker container. You are responsible for provisioning persistent storage for the database, configuring S3-compatible object storage for file exports if needed, and setting up a reverse proxy for TLS termination. The application supports automatic database migrations via an environment flag, making upgrades straightforward, but you own the backup strategy, uptime, and any horizontal scaling beyond a single host. PDF invoice generation additionally requires either a self-hosted Gotenberg instance or a compatible Chromium renderer endpoint.
The managed solidtime Cloud removes the operational burden entirely — Anthropic handles deployment, uptime, automated backups, SSL, and rolling upgrades. The open-source self-hosted build ships with all core features fully unlocked; there is no feature gating or telemetry enforcement in the community edition. The cloud tier exists primarily for convenience rather than capability differentiation, though cloud subscribers gain access to priority support channels and any future commercial extensions the team may release. Self-hosters receive community support via GitHub Issues and Discussions.
Related Apps
AutoGPT
Automation · Productivity · AI Assistants
Build, deploy, and run autonomous AI agents that automate complex multi-step workflows using a visual block-based graph editor.
AutoGPT
OtherDify
No Code Platforms · AI Development · Developer Tools
Visual LLM workflow platform with RAG pipelines, agent capabilities, and model management for building production AI applications.
Dify
OtherStirling PDF
Productivity · Digital Signiture
The open-source PDF platform you can run anywhere — edit, convert, sign, and automate PDFs without sending files to external servers.