liberusoftware/developer-experience-api
A Laravel package that exposes an API for Liberu developer experience tooling, with endpoints and helpers intended to streamline local development workflows. Early-stage project with minimal adoption and limited documentation, so review the source before relying on it in production.
Architecture fit. liberusoftware/developer-experience-api is a presentation adapter — the outermost layer of a hexagonal/ports-and-adapters design. In a Laravel codebase this typically means: HTTP controllers, form requests, API resources, and route definitions that translate application-layer DTOs into transport contracts. That is architecturally desirable (thin, replaceable, testable in isolation) and it is also the layer with the least intrinsic value: adapters are the cheapest thing in the system to write from scratch. The package is a sub-module of the Liberu Software ecosystem (module-* naming convention implies a larger modular monolith), so its real fit is only high if we are already committed to the Liberu module conventions. Adopted standalone, it imports conventions we did not choose.
Integration feasibility. Mechanically low-friction: Composer install, Laravel package auto-discovery, likely a config-published service provider. Commercially and legally, feasibility is low until two things resolve:
NOASSERTION. This is not a license; it is GitHub's failure to match the LICENSE file to a known SPDX identifier. We cannot pass legal review, cannot assert compatibility with our own licensing, and cannot ship this to a customer without a written clarification from the copyright holder. This alone is a hard blocker for anything beyond internal evaluation.Technical risk. Ranked:
| Risk | Severity | Notes |
|---|---|---|
License ambiguity (NOASSERTION) |
Critical | Blocks distribution; potential copyleft contamination unknown |
| Bus factor 1 / no support channel | High | No issue triage, no security disclosure policy, no CVE path |
| Coupling to unpublished sibling modules | High | Adapter likely requires module-developer-experience core + Liberu API foundation not published on Packagist |
| Version/contract drift | High | Adapter without a published OpenAPI/JSON-Schema contract is unverifiable |
| Release metadata integrity | Medium | Last release is dated 2026-10-26 — a future date. Either a misconfigured tag, a placeholder, or synthetic metadata. Treat the release history as untrustworthy until confirmed. |
| Package abandonment | Medium | Score 19.8/100; opportunity 44.99. High "opportunity" with low score = immature, not proven. |
Key questions to put to the maintainer (or answer ourselves in a spike):
composer why, composer show --tree)? Are all transitive deps on Packagist?Recommendation: do not adopt as a dependency. Evaluate as a reference implementation — read the source, extract the routing/resource patterns, and reimplement the thin adapter in-house under our own license and test suite. Effort to reimplement an adapter layer of this scope is typically 3–8 engineer-days; the legal and support risk of depending on it is open-ended.
Stack fit. Presumed Laravel + PHP 8.x, Composer, service-provider auto-discovery, likely Laravel API Resources and a modular package structure. This fits a Laravel monolith or a modular monolith cleanly. It fits a service-oriented or event-driven architecture only if the adapter is genuinely stateless and the underlying application layer is reachable in-process — verify there is no shared-DB or shared-session assumption.
Migration path. Two viable paths, in order of preference:
App\Http\Api\V1\... namespace, backed by our own tests. Zero dependency, zero license exposure, full control of the contract.Do not take a floating ^0.x constraint directly from Packagist. With zero dependents and a NOASSERTION license, an upstream force-push or deletion is a real availability event.
Compatibility. Build an explicit matrix before any code is written:
| Dimension | Verify |
|---|---|
| Laravel | 10 / 11 / 12 — install in a clean skeleton and run php artisan route:list |
| PHP | 8.2 / 8.3 / 8.4 — check composer.json require and CI config |
| Dependencies | composer why-not against our locked set; look for conflicting Illuminate constraints |
| Autodiscovery | Confirm extra.laravel.providers present and that it does not register global middleware we do not want |
| Contract | Diff the exposed routes against our existing API surface for collisions |
Sequencing.
composer show --tree in a throwaway app. Gate: written license answer + clean install. If either fails, stop and go to path 1.route:list, hit every endpoint, capture request/response shapes. Produce an OpenAPI fragment.Maintenance. This is the dominant cost. Depending on this package means we inherit an unmaintained adapter whose upstream contract we do not control. Each Laravel major upgrade becomes a blocker we cannot resolve ourselves without forking. Vendoring converts an external risk into an internal maintenance line item — budget roughly 1–2 engineer-days per quarter for dependency hygiene, plus unbudgeted work on any Laravel major. Pattern extraction reduces this to ordinary application code we already maintain.
Support. There is none. Zero stars and zero dependents means no community, no Stack Overflow corpus, no issue history to search. Any defect is ours to diagnose in someone else's code. There is no security disclosure channel — a vulnerability in this adapter would be disclosed to no one. If we adopt, we must add the package to our internal vulnerability-scanning allowlist with a documented acceptance of that gap, and we should scan the source ourselves before first deploy.
Scaling. The adapter layer itself is almost certainly stateless and scales horizontally with the app tier — not a concern. The scaling risks are indirect:
Failure modes.
| Failure | Blast radius | Mitigation |
|---|---|---|
| Upstream repo deleted / force-pushed | Build breaks on clean checkout | Vendor or mirror; never depend on a floating ref |
| Silent breaking change in response shape | Client integrations break | Pin exact version; contract tests in CI |
| Transitive dependency conflict on Laravel upgrade | Blocks framework upgrade | Isolate behind an interface; keep the adapter thin |
| License challenge post-deployment | Forced removal under deadline | Resolve before adoption, not after |
| Undisclosed vulnerability | Data exposure via API surface | Internal review + SCA allowlist with owner |
| Adapter leaks Eloquent models | Internal schema becomes public contract | Enforce explicit API Resources; contract tests |
Ramp-up. Code volume is likely small (adapters are thin), so reading it is cheap. The real ramp-up cost is contextual: understanding Liberu's module conventions, its base API foundation, and which behaviors are inherited from sibling packages rather than defined here. Estimate 2–3 engineer-days for a senior Laravel engineer to reach confident judgment — which is comparable to simply writing the adapter ourselves. That comparison is the crux of the decision.
Bottom line. Treat this as a pattern source, not a dependency. The architecture it represents (thin presentation adapter at the edge) is correct and worth imitating. The package itself carries an unresolved license, no adoption evidence, no support path, and suspect release metadata. Opportunity score of 44.99 reflects an immature artifact in a plausible niche — not a production-ready component. Decision gate: written SPDX clarification plus a clean install against our target Laravel version, or we build it ourselves.
How can I help you explore Laravel packages today?