solidtime: Open-Source Time Tracking for Freelancers and Agencies
Modern open-source time-tracking app
At a glance
- What is it?
- solidtime is a self-hostable time tracking application built on Laravel and Vue.js, targeting freelancers and agencies who want billable rate management, multi-organization support, and data import from Toggl or Clockify. The AGPL-3.0 license and the contribution policy that explicitly bans AI-generated pull requests are both worth reading before adopting.
- Who is it for?
- solidtime is a good fit for a freelancer or small agency that wants to self-host their time tracking data, needs billable rate management across projects and clients, and wants to import an existing history from Toggl or Clockify. It is not a fit for teams who want a managed SaaS with no maintenance overhead, or for developers who want to contribute AI-assisted code (the README bans this explicitly).
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 13 days ago.
- What is it written in?
- Mainly PHP, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What solidtime Solves and Who It Is For
Most time tracking tools for freelancers fall into two categories: feature-limited free tiers with data controlled by a third party, or expensive SaaS subscriptions. solidtime offers a third option: a self-hosted application that gives the operator full control over their data, with a cloud-hosted version available at solidtime.io for users who do not want to manage infrastructure.
The README states the tool is designed for freelancers and agencies. The feature set reflects that focus: time entries, projects, tasks, clients, billable rates at multiple levels (project, project member, organization member, organization), multiple organizations from a single account, roles and permissions, and data import from other time tracking applications. The import support covers Toggl, Clockify, and a generic Timeentry CSV format.
The application is v0.21.0, released on 2026-09-22. The last push to the repository was on 2026-09-17.
Architecture: Laravel, Vue.js, and PostgreSQL
solidtime is a PHP application built on the Laravel framework, with a Vue.js frontend delivered through Inertia.js. The package.json shows the frontend uses Tailwind CSS, and the composer.json dependency list (inferred from the presence of artisan, bootstrap/, and config/ directories) follows the standard Laravel layout.
The .env.example file in the repository shows the expected configuration: a PostgreSQL database (DB_CONNECTION=pgsql on port 5432), S3-compatible storage for file uploads, mail configuration via SMTP, and Passport for personal access token authentication. FrankenPHP is configured as the Octane server via OCTANE_SERVER=frankenphp.
The docker-compose.yml in the repository includes a `laravel.test` service using Laravel Sail and Traefik for local HTTPS routing. The production setup uses a separate configuration. The self-hosting guide at docs.solidtime.io and the examples repository at github.com/solidtime-io/self-hosting-examples provide detailed deployment configurations.
Key Features: Billable Rates, Organizations, and Import
The billable rate system in solidtime operates at four levels: organization-wide, per organization member, per project, and per project member. This hierarchy lets a freelancer set a default hourly rate for all work, override it for specific clients or projects, and further override it for individual contributors on a project. The README lists this as a distinct feature separate from the basic time tracking.
Multiple organizations is a feature for agencies managing distinct client accounts from one login. A single solidtime account can belong to multiple organizations, and each organization has its own projects, clients, and members. This avoids the need for separate accounts per client.
The import feature accepts exports from Toggl, Clockify, and a generic Timeentry CSV. This is significant for adoption: a freelancer who has years of history in Toggl can migrate to a self-hosted solidtime instance without losing their data. The README lists the supported import formats explicitly as Toggl, Clockify, and Timeentry CSV.
A REST API is available, with an openapi.json file in the repository root documenting the endpoints. The package.json includes a script `zod:generate` for regenerating the typed API client from the OpenAPI spec, which supports integration with custom frontends or automation workflows.
Self-Hosting: Configuration and First Deployment
The README directs users to docs.solidtime.io/self-hosting/intro for full self-hosting instructions. The repository's .env.example provides the required environment variables. Key ones to configure before first run include:
APP_URL=https://solidtime.test
DB_CONNECTION=pgsql
DB_HOST=pgsql
DB_PORT=5432
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root
FILESYSTEM_DISK=s3The APP_ENABLE_REGISTRATION variable controls who can sign up: accepted values are `on`, `off`, and `invite-only`. Setting it to `off` after creating the initial account prevents unauthorized registration on a public-facing instance.
The SUPER_ADMINS variable takes a comma-separated list of email addresses for accounts with elevated administrative access. The default in .env.example is `[email protected]`, which should be changed before deployment.
The self-hosting examples repository at github.com/solidtime-io/self-hosting-examples provides working Docker Compose configurations for common deployment scenarios. The README recommends reviewing that repository alongside the documentation.
Limitations and Cases Where solidtime Is the Wrong Tool
solidtime requires infrastructure: a PostgreSQL database, an S3-compatible object store for file uploads, and a PHP server with the ability to run FrankenPHP or a standard PHP-FPM setup. For a freelancer who wants to start tracking time in five minutes without touching a server, this is a barrier. The cloud-hosted version at solidtime.io removes this barrier but returns control of the data to a third party.
The mobile story is not addressed in the README. The RELATED SEARCHES include queries for solidtime Android, which suggests users are looking for a mobile app that the README does not mention. The application is web-based.
solidtime does not appear to have a desktop timer application mentioned in the README. Time tracking is done through the web interface.
The contribution policy is worth noting: the README bans AI-generated pull requests and states that authors who submit them will be banned from future contributions. Pull requests from unvouched contributors are closed automatically unless they change 50 lines or fewer. New contributors need to open an issue or discussion and get approved before submitting larger changes. This policy is intentional and clearly documented, but it sets expectations for the contribution timeline.
solidtime vs Toggl: Self-Hosted vs Managed Service
Toggl Track is a cloud-hosted time tracking service with a free tier for up to five users and paid plans for teams. It has native mobile apps, browser extensions, and integrations with dozens of third-party tools. Toggl controls the data, updates happen automatically, and there is no infrastructure to manage.
solidtime offers the opposite tradeoff. The operator owns the data and controls the update schedule but must manage the deployment and database. solidtime explicitly supports importing from Toggl, which is a migration path for teams moving off the managed service.
The practical difference comes down to who the operator is. A freelancer comfortable with Docker and server administration who wants to avoid ongoing SaaS fees and retain data ownership has a real case for solidtime. A freelancer who wants to focus on client work and not server maintenance is better served by Toggl or a similar managed product.
License and Contribution Policy
solidtime is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). The AGPL differs from the GPL in one critical respect: if you run a modified version of solidtime as a network service for others (for example, as a managed time tracking service), you must make your modifications available under the AGPL. Running solidtime on your own server for your own use imposes no such obligation.
For a freelancer or agency running solidtime internally for their own time tracking, the AGPL-3.0 has no practical effect on their code. For a company that wants to white-label solidtime and offer it as a service to paying customers, the AGPL requires disclosing the source of any modifications.
The project accepts documentation contributions to the docs repository at github.com/solidtime-io/docs, particularly for self-hosting guides. Code contributions require prior approval through the issue or discussion process.
Editorial conclusion
solidtime is a good fit for a freelancer or small agency that wants to self-host their time tracking data, needs billable rate management across projects and clients, and wants to import an existing history from Toggl or Clockify. It is not a fit for teams who want a managed SaaS with no maintenance overhead, or for developers who want to contribute AI-assisted code (the README bans this explicitly). Before self-hosting, verify that your server meets the Docker and PostgreSQL requirements, and review the AGPL-3.0 implications if you plan to modify and run the code as a service for others.
Frequently asked questions
what is solidtime
solidtime is an open-source time tracking application for freelancers and agencies, built on Laravel and Vue.js, that can be self-hosted on a server or used via the hosted version at solidtime.io. It supports billable rates, multiple organizations, and imports from Toggl and Clockify.
solidtime vs toggl
Toggl Track is a managed cloud service with native mobile apps and no infrastructure to manage. solidtime is self-hosted and gives the operator full data ownership, supports importing from Toggl, but requires a PostgreSQL database and Docker deployment.
solidtime alternative
The README explicitly supports importing from Toggl, Clockify, and Timeentry CSV, positioning solidtime as a self-hosted replacement for those services. Clockify is a direct alternative with a free tier and managed hosting.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/solidtime-io-solidtime)