# solidtime

Laravel time tracker for freelancers and agencies with a full REST API for entries, projects, reports and invoices.

solidtime tracks time against clients, projects and tasks with billable rates, roles, multiple organizations, and imports from Toggl and Clockify. The Builder publishes an OpenAPI-described REST API (v1) covering time entries, projects, tasks, clients, members, tags, reports, exports and invoices, with personal API tokens. Self-hosting uses a documented .env; solidtime cloud has a free Solo plan and a paid Professional plan.

Alternative to: Toggl Track, Harvest, Clockify

- Capabilities: adaptable, operable
- Vertical: scheduling-staffing
- Shape: business-app
- Form factor: web-app
- Execution model: deterministic
- Provenance: human-written (recorded, never ranked)
- Repo: https://github.com/solidtime-io/solidtime (AGPL-3.0), 8897 stars, last commit 2026-09-01
- Last activity: 2026-09-01
- Page: apps/solidtime-io--solidtime.html
- JSON: apps/solidtime-io--solidtime.json

## Use it when

- my studio bills clients by the hour and I want tracked time to turn into reports and invoices without a SaaS seat fee
- I want my agent to start timers, file entries against projects and pull weekly reports over a documented API

## Gotchas

- AGPL-3.0 copyleft
- PostgreSQL only; PDF output needs a Gotenberg container
- Maintainers auto-close pull requests over 50 lines from unvouched authors and ban AI-generated PRs; plan to keep changes in your fork
- Invoicing, estimates and PDF reports are Professional features on cloud; confirm whether the self-hosted build gates them

## Editions

- Self-hosted: Free, open source
  - source: https://github.com/solidtime-io/solidtime
  - container: https://docs.solidtime.io/self-hosting/intro
- Cloud Solo: €0 per month, closed source
  - hosted: https://www.solidtime.io/
- Cloud Professional: €9 per month, closed source
  - hosted: https://www.solidtime.io/pricing

## Adaptable: make it yours

Effort: config-only (23 things to edit)

Set APP_URL, APP_KEY and the DB_* PostgreSQL variables, MAIL_* for invitations and reports, and APP_ENABLE_REGISTRATION (on, invite-only, off) plus SUPER_ADMINS to control who gets in. PASSPORT_PRIVATE_KEY and PASSPORT_PUBLIC_KEY back API tokens; GOTENBERG_URL is needed for PDF reports and invoices; S3_* for file storage. Rates, projects, roles and invoice templates are set in the UI.

- Env vars: APP_URL, APP_KEY, APP_ENABLE_REGISTRATION, SUPER_ADMINS, APP_FORCE_HTTPS, TRUSTED_PROXIES, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD, MAIL_MAILER, MAIL_HOST, MAIL_FROM_ADDRESS, PASSPORT_PRIVATE_KEY, PASSPORT_PUBLIC_KEY, GOTENBERG_URL, FILESYSTEM_DISK, S3_BUCKET, API_RATE_LIMIT_AUTH_PER_MINUTE
- Config files: .env.example, docker-compose.yml, self-hosting-examples repository
- Prompt files: none
- Accounts you'll need: solidtime cloud (hosted editions only)

## Operable: what an agent can drive

Operability: official. Interface: api at https://docs.solidtime.io/api-reference (published by the builder, both).

### Reach (partial coverage)

- Create, edit and stop time entries: reachable. openapi.json.client.ts paths /v1/organizations/{}/time-entries and /v1/users/me/time-entries/active
- Manage projects, tasks and project members: reachable. paths /projects, /tasks, /projects/{}/project-members
- Manage clients: reachable. path /v1/organizations/{}/clients
- Manage members and invitations: reachable. paths /members, /invitations, /invitations/{}/resend
- Tag entries: reachable. path /v1/organizations/{}/tags
- Run and share reports: reachable. paths /reports, /time-entries/aggregate, /v1/public/reports
- Export time data: reachable. paths /time-entries/export, /time-entries/aggregate/export, /export
- Create and download invoices: reachable. paths /invoices, /invoices/{}/download, /invoice-settings; invoicing is a Professional feature on cloud
- Import from Toggl or Clockify: reachable. paths /import and /importers
- Create API tokens: not reachable. /v1/users/me/api-tokens exists but the first token is issued from a logged-in browser session

## Code stack

- Languages: PHP, TypeScript
- Frameworks: Laravel, Vue, Laravel Passport, Octane
- Package manager: composer
- Database: PostgreSQL
- Hosting target: docker

## Evidence and confidence

- formFactor: README: Laravel web application, Docker self-hosting guides (confidence 0.95)
- executionModel: no model SDK in README or .env.example (confidence 0.95)
- operability: openapi.json and resources/js/packages/api/src/openapi.json.client.ts in the repo; docs.solidtime.io/api-reference; personal access tokens through Passport (confidence 0.9)
- effort: .env.example in repo; docs.solidtime.io/self-hosting/configuration documents each variable (confidence 0.9)
- editions: solidtime.io/pricing: Solo free, Professional EUR 9 per month; README: self-host under AGPL (confidence 0.75)
- active: shortlist pushedAt 2026-09-01
- reach:  (confidence 0.85)

## Open questions

- Is Professional priced per user or per organization?
- Does the self-hosted edition include invoicing and PDF reports, or are they cloud-only?

## Sources

- https://github.com/solidtime-io/solidtime (sourcing:scheduling-staffing:curated)
- https://docs.solidtime.io/ (sourcing:scheduling-staffing:curated)
- https://docs.solidtime.io/self-hosting/configuration (analysis:scheduling-staffing)
- https://www.solidtime.io/pricing (analysis:scheduling-staffing)
