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
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Thelia
Customizable, French‑made e‑commerce platform for scalable online stores
Heimdall
Centralized dashboard for all your web apps and links
Kodi
Open‑source home theater media hub
Mathesar
Spreadsheet‑like UI for PostgreSQL data, no code required
Uptime Kuma
Self-hosted uptime monitoring for all services
AsmBB
Self-hosted imageboard powered by BBCode and PHP
