iluminar/goodwork
Goodwork is a self-hosted project management and collaboration platform built with Laravel and Vue.js. It combines projects, tasks, discussions, calendars, and team communication in one workspace, helping teams plan work, track progress, and stay organized.
Architecture fit. Goodwork is a complete Laravel application, not a Composer library. This is the single most important fact for a TPM: there is no composer require integration story. "Leveraging" it means one of three patterns — (a) deploy it as a standalone internal tool/satellite service, (b) fork it and customize in-tree, or (c) mine it as a reference implementation for domain models (clients, projects, time entries, invoices). Option (a) is the lowest-commitment path; (b) converts you into a maintainer; (c) is cheap but slow.
Integration feasibility. High as a self-hosted deployment (MIT, standard Laravel deploy: PHP-FPM, MySQL, queue worker, scheduler, storage for invoice PDFs). Moderate-to-low as an embedded component. The stack is Laravel + Filament (Livewire/Alpine/Tailwind), which means the UI layer is server-rendered Filament panels — not something you can cleanly graft into a React/Vue SPA without reimplementation. Programmatic integration hinges on whether the HTTP API and webhook surface are documented and stable; that must be verified before any commitment.
Technical risk. Several concentrated risks:
Key questions. Which Laravel and Filament versions are supported today, and what is the upgrade policy? Is there a documented, versioned REST/GraphQL API and webhook system, or is the UI the only interface? Is multi-tenancy first-class or bolted on? What is the auth model (teams, roles, SSO/OIDC/SAML)? What is the test coverage and release cadence over the last 12 months? Are invoice numbering, tax rules, and currency handling configurable to our jurisdiction? Who owns security disclosure response?
Stack fit. Clean fit if you are already on Laravel 10/11 + MySQL 8 + Redis + S3-compatible storage and have PHP operational competence. Poor fit for a polyglot or JVM/Node-centric platform — in that case treat Goodwork strictly as an external service behind SSO and an API contract, never as embedded code.
Migration path. Recommended: stand-alone deployment first, integrated by contract. Concretely — deploy Goodwork as its own service with its own database; front it with your IdP via OIDC/SAML (Filament supports socialite/SSO plugins); expose clients/projects/time-entries/invoices through its API plus webhooks into your event bus; keep your system of record for billing/ERP and treat Goodwork as the capture and presentation layer. Only fork if a hard requirement (custom approval workflow, jurisdiction-specific invoicing, bespoke UI) cannot be met through configuration or a thin extension.
Compatibility. Confirm PHP 8.2/8.3 alignment, MySQL vs. Postgres support, queue driver expectations for PDF rendering, and mail transport. Filament ships compiled assets — a fork requires a Node build step in CI, which many PHP teams underestimate.
Sequencing.
Maintenance. If standalone and unmodified, maintenance is "deploy and patch" — track upstream releases, apply security updates to Laravel dependencies, monitor Filament upgrades. If forked, you inherit full application ownership: dependency upgrades, Filament major migrations, and merge conflicts on every upstream release. Budget roughly 0.25–0.5 FTE for a fork versus ~0.1 FTE for standalone. The fork is the hidden cost in this decision.
Support. MIT with community-only support. No vendor SLA, no commercial backing, no guaranteed CVE turnaround. Any business-critical dependency on invoicing needs an internal owner named on day one.
Scaling. PHP-FPM + MySQL scales comfortably to hundreds of concurrent users — appropriate for SMB and internal use. Watch: PDF generation should be queued, not synchronous; invoice and time-entry tables grow monotonically and need indexing and archival strategy; Filament admin panels are heavier per request than a thin API, so separate read-heavy reporting from the app tier. Multi-tenant scale (thousands of tenants) is unproven and should not be assumed.
Failure modes. Highest-severity: incorrect invoice totals, tax, or currency rounding (silent, financially material); invoice number gaps or duplicates during migration; timezone drift on time entries spanning DST; failed queue workers silently dropping PDFs or notifications; broken migrations on upgrade with no rollback; Filament asset build failures after a minor bump; session/auth regressions after SSO plugin updates. Each needs a detection control — reconciliation reports on invoiced amounts are non-negotiable.
Ramp-up. Laravel developers reach productivity in days; Filament conventions (resources, relation managers, actions, policies) take one to two weeks to master. A TPM needs one engineer fluent in Filament and one finance-domain stakeholder for invoicing validation. Plan the POC so the finance stakeholder signs off on a full invoice cycle before any integration work begins — that is the gate that determines whether the rest of this plan is worth executing.
How can I help you explore Laravel packages today?