Browse / Scheduling and staffing
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.
- 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
- 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
Last activity Sep 1, 2026. Fit: adaptable 2, operable 3.
Editions
Self-hosted · Free open source
- Clone
git clone https://github.com/solidtime-io/solidtime - ImageContainer
Cloud Solo · €0 per month closed source
- HostedOpen the hosted app
Cloud Professional · €9 per month closed source
- HostedOpen the hosted app
Adaptable: what is yours to change
Make it yours
Config only23 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_URLAPP_KEYAPP_ENABLE_REGISTRATIONSUPER_ADMINSAPP_FORCE_HTTPSTRUSTED_PROXIESDB_HOSTDB_PORTDB_DATABASEDB_USERNAMEDB_PASSWORDMAIL_MAILERMAIL_HOSTMAIL_FROM_ADDRESSPASSPORT_PRIVATE_KEYPASSPORT_PUBLIC_KEYGOTENBERG_URLFILESYSTEM_DISKS3_BUCKETAPI_RATE_LIMIT_AUTH_PER_MINUTE- Config files
.env.exampledocker-compose.ymlself-hosting-examples repository- Prompt files
- none
- Accounts you need
- solidtime cloud (hosted editions only)
Source
- github.com/solidtime-io/solidtime
- AGPL-3.0 license
- Last commit Sep 1, 2026
- 8,897 stars
Operable: what an agent can drive
Interface
OfficialAPIpublished by the builderremote or local
How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.
Reach
Partial coverage. 9 of 10 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| 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
- PHPTypeScript
- Frameworks
- LaravelVueLaravel PassportOctane
- Package manager
- composer
- Database
- PostgreSQL
- Hosting target
- docker
- Built
- Human-written (recorded, never ranked)
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | README: Laravel web application, Docker self-hosting guides | 95% |
| executionModel | no model SDK in README or .env.example | 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 | 90% |
| effort | .env.example in repo; docs.solidtime.io/self-hosting/configuration documents each variable | 90% |
| editions | solidtime.io/pricing: Solo free, Professional EUR 9 per month; README: self-host under AGPL | 75% |
| active | shortlist pushedAt 2026-09-01 | – |
| reach | 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
- github.com/solidtime-io/solidtime sourcing:scheduling-staffing:curated
- docs.solidtime.io/ sourcing:scheduling-staffing:curated
- docs.solidtime.io/self-hosting/configuration analysis:scheduling-staffing
- www.solidtime.io/pricing analysis:scheduling-staffing