hexadog/laravel-theme-installer
Composer installer for Laravel theme packages that automatically places themes in the correct themes directory. Integrates with hexadog/laravel-themes, simplifying theme distribution and installation without manual publishing or path configuration.
themes/ directory instead of vendor/, which is the difference between "branding is a redeploy-and-pray operation" and "branding is a versioned, diffable artifact your team can review."hexadog/laravel-theme + installer pair converts that into a dependency decision, freeing that capacity for the differentiating surface of the product.resources/, theme changes become reviewable PRs with pinned versions and clean rollbacks. This supports a decision to hold themes to the same change-control standard as application code.Consider it when all of the following hold:
hexadog/laravel-theme as the theming layer. The installer is a satellite; it has no standalone value.allow-plugins in composer.json. This is a supply-chain surface; treat it as such.Look elsewhere when:
vendor/. Do not fight that policy for a convenience feature.For executives (one paragraph): We can offer per-client branding and white-label variants without building a theming platform ourselves. This package is a small, MIT-licensed Composer plugin that lets theme packages install into our own themes/ directory instead of vendor/, which means each brand becomes a versioned, reviewable, rollback-able artifact rather than a manual edit. It is a distribution mechanism, not a product in itself — the design system and theming engine still sit with us. Cost to trial is days, not weeks. The trade-off is maturity: it is a low-adoption open-source component, so we should pilot it on one product, keep it behind our own internal interface, and budget a few days a year for maintenance or a fork. Recommended decision: approve a scoped pilot; revisit ownership at the end of the first white-label engagement.
For engineering: This is a Composer plugin that hooks installation of laravel-theme packages and redirects them outside vendor/, so themes are first-class project code — editable, diffable, and independently versioned, with theme resolution handled by the parent package. Integration surface is small and mostly declarative. Two things to own explicitly: (1) allow-plugins governance and CI implications of a Composer plugin in the build chain, and (2) an internal theme-resolution wrapper so we are not coupled to the hexadog API at every call site. If the package ever goes unmaintained, that wrapper is what makes a fork or replacement a contained task rather than a migration.
For design/agency partners: Themes become installable, numbered releases. You can ship a brand update without waiting on an application release, and we can roll it back the same way.
How can I help you explore Laravel packages today?