orchestra/widget
Orchestra Widget provides a lightweight widget manager for Laravel, letting you register, resolve, and render reusable UI components within the Orchestra Platform ecosystem. It integrates with the framework's container and view layer to keep dashboards and admin panels modular.
Recommendation: keep as an internal reference architecture, not a dependency. No vendor, no support contract, effectively no user base (zero dependents, zero stars, 0.3 score). Adopting means owning every line forever; copying the shape costs a day or two once the roadmap actually calls for a plugin surface.
Consider it when:
Look elsewhere when:
orchestra/support and related contracts; that is more work than writing ~150 lines of our own registry.php and illuminate/* constraints before spending evaluation time.Cheap go/no-go gate (~half a day): confirm PHP/Laravel constraint compatibility, confirm the package boots without Orchestra's full stack, confirm the widget contract is stable across majors, confirm license and last-commit date. Any failure ends the evaluation. Benchmark mature alternatives (arrilot/laravel-widgets, Filament widgets, Nova cards) first if we want something off the shelf.
To executives: This is not a purchase decision — it's a pattern decision. There is no vendor, no support contract, and effectively no user base, so "adopting" it means owning it forever with no one upstream to fix anything. Its value is that it demonstrates a small, proven shape for "modules contribute UI blocks to a host screen," which we can reimplement in one to two engineering days when the roadmap actually calls for a plugin surface. Recommendation: keep it as an internal reference, do not add it as a dependency, and revisit only if we commit to a multi-module admin platform. The failure mode isn't a security incident — it's a silent internal fork we maintain indefinitely because nobody else uses it; the Laravel-upgrade tax then lands entirely on us, and that annual maintenance line is real.
To engineering: It's a compact widget registry — named areas, ordered registration, permission-aware resolution, namespaced view rendering — built for Orchestra Platform and therefore entangled with that ecosystem's container, extension manager, and ACL. Read it, don't install it. If we build our own, copy the area/registry/resolver separation, keep the widget contract minimal (id, area, order, visibility predicate, render callable, cache TTL), and put it behind a feature flag before wiring any real dashboards. Budget one to two days for a first-party equivalent with tests, versus an open-ended compatibility and ownership burden from vendoring. Known watch-items: removed Laravel helpers (array_get, str_*), Composer constraint deadlock during Laravel upgrades, and the signature bug of "renders empty string" — almost always registration order or an undeclared area, not the render method. Add CI that every registered widget resolves and renders.
Risk framing: Low cost to evaluate, high cost to depend on. Maintenance status is unverified, documentation is sparse and dated, and the realistic support model is "one or two people who have read the source" — a bus-factor worth naming. Reimplementing keeps the surface inside the platform team's normal ownership and upgrade cadence, which is the whole argument for reimplementation.
How can I help you explore Laravel packages today?