MCPSERV.CLUB
solidtime

solidtime

Self-Hosted

Open‑source time tracker for freelancers and agencies

Active(100)
7.5kstars
0views
Updated 2 days ago
solidtime screenshot 1
1 / 2

Overview

Discover what makes solidtime powerful

solidtime is a full‑stack, self‑hostable time‑tracking platform designed for freelancers and agencies that need granular control over billing, projects, and teams. From a developer’s viewpoint, it exposes a RESTful API that mirrors its internal domain model—projects, tasks, clients, and billable rates—making it straightforward to integrate into existing toolchains or build custom dashboards. The application is built around a clean separation of concerns: a Laravel‑based backend that handles authentication, authorization, and business logic; an Angular/React‑like frontend (Vue 3) that consumes the API via a lightweight SDK; and a PostgreSQL database that enforces strong relational integrity. This architecture allows teams to iterate on the UI or swap out the API layer without disrupting core workflows.

Backend

Frontend

Database

Testing

Overview

solidtime is a full‑stack, self‑hostable time‑tracking platform designed for freelancers and agencies that need granular control over billing, projects, and teams. From a developer’s viewpoint, it exposes a RESTful API that mirrors its internal domain model—projects, tasks, clients, and billable rates—making it straightforward to integrate into existing toolchains or build custom dashboards. The application is built around a clean separation of concerns: a Laravel‑based backend that handles authentication, authorization, and business logic; an Angular/React‑like frontend (Vue 3) that consumes the API via a lightweight SDK; and a PostgreSQL database that enforces strong relational integrity. This architecture allows teams to iterate on the UI or swap out the API layer without disrupting core workflows.

Technical Stack

  • Backend: Laravel 9 (PHP 8.1+), leveraging Eloquent ORM, Sanctum for API tokens, and Laravel Passport for OAuth scopes. The codebase is heavily typed with PHPStan level 7, ensuring static analysis catches most regressions before deployment.
  • Frontend: Vue 3 with Pinia for state management and Vite as the build tool. The UI is responsive, using TailwindCSS for utility‑first styling, which simplifies theme overrides and custom component creation.
  • Database: PostgreSQL 13+ with JSONB columns for flexible metadata storage (e.g., custom fields on projects). The schema is versioned via Laravel migrations, allowing CI pipelines to apply incremental changes automatically.
  • Testing: PHPUnit for unit tests and Pest for expressive feature tests; coverage is tracked on Codecov. CI runs via GitHub Actions, ensuring every PR passes the linting and test suite before merging.

Core Capabilities

solidtime exposes a comprehensive set of endpoints:

  • Time Entries: CRUD operations with support for bulk import from CSV, Toggl, and Clockify.
  • Projects & Tasks: Hierarchical relationships with role‑based access control; tasks can be assigned to multiple users and have status transitions.
  • Clients & Billing: Clients are first‑class entities linked to projects, with configurable billable rates per user, project, or organization.
  • Organizations: Multi‑tenant support via a “current organization” context; each org can have its own set of users, roles, and permissions.
  • Webhooks: Developers can subscribe to events (e.g., time_entry.created, project.updated) and trigger downstream automation in Zapier, Slack, or custom services.
  • SDK: A minimal JavaScript client auto‑generates from OpenAPI specs, enabling type‑safe calls in TypeScript projects.

Deployment & Infrastructure

The project ships with Docker Compose files and a Helm chart for Kubernetes, allowing teams to deploy in diverse environments—on-premise VMs, cloud VPCs, or managed Kubernetes services. The container image is built from a multi‑stage Dockerfile that keeps the runtime lean (~120 MB). For scaling, solidtime relies on stateless PHP workers behind a reverse proxy (NGINX) and Postgres connection pooling via PgBouncer. Horizontal scaling of workers is trivial; the database layer can be replicated or sharded if needed for very high write throughput.

Integration & Extensibility

Because solidtime is open source under AGPL‑3.0, developers can modify the core code or fork the repository to add new features—such as custom billing algorithms or integrations with project management tools like Jira. The plugin system is in early stages but planned to expose hooks (e.g., onTimeEntryCreate) that let external modules inject logic without touching the core. The API follows REST conventions, and a GraphQL endpoint is in discussion to provide more flexible queries for analytics dashboards.

Developer Experience

The documentation is split into three sections: Self‑Hosting, API Reference, and Contribution Guide. The self‑hosting docs walk through environment variables, database migrations, and CI/CD pipeline setup. Contributing guidelines enforce a pull‑request workflow that includes automated tests, code style checks, and a requirement to open an issue first for larger changes. The community is active on GitHub Discussions, where feature requests and bug reports are triaged by maintainers. The licensing model (AGPL‑3.0) encourages both open‑source contributions and commercial use, provided the derived work remains open.

Use Cases

  • Agency Billing: A development agency can host solidtime internally, enforce project‑specific rates, and export invoices directly to their accounting system via the API.
  • Freelancer Portfolio: A freelancer can run solidtime on a VPS, integrate it with their personal website to display logged hours, and use the import feature to migrate data from Toggl.
  • Enterprise Time Tracking: Large organizations can deploy solidtime on Kubernetes, scale the API horizontally, and use webhooks to sync time entries with HR systems or payroll services.

Advantages

solidtime offers a combination of modern PHP practices, type safety, and a clean UI that outpaces many legacy time‑tracking tools. Its open‑source nature removes licensing costs and allows full auditability of the codebase. The AGPL license ensures that any improvements remain community‑owned, fostering a virtuous cycle of feature addition. For developers prioritizing flexibility, the combination of Laravel’s expressive routing and Vue 3’s component model provides a familiar development experience while still delivering a robust, production‑ready application.

Open SourceReady to get started?

Join the community and start self-hosting solidtime today