alizharb/laravel-themer
Laravel Themer is an enterprise-grade theme management package for Laravel and TALL stack apps. It offers per-theme Vite builds, NPM workspaces, theme-aware view overrides, Livewire 4 integration, interactive CLI wizards, safe theme cloning/activation, and a fast zero-IO production cache.
package.json and Vite builds plus theme inheritance map cleanly onto "brand A and brand B share a component base, each overrides a handful of views and CSS." This is the strongest product story: it turns a bespoke fork-per-client model into one deployable, N brands.theme:preview with signed, expiring URLs is not a dev convenience — it's a stakeholder sign-off and sales-demo workflow. It unlocks decisions like "ship an unfinished theme to a customer for approval" and "let a client pick a skin before purchase" without exposing the app.theme_token() / @themeTokens let you make a public commitment to "rebrand without a code change" today, and defer a full design-system or CMS-driven theming investment by a quarter or more. It also gives marketing a self-serve lever on campaign skins.theme:doctor, theme:status, theme:graph, theme:why, cache manifests and theme:refresh are what make theming safe enough to put in CI. This supports decisions about release gatekeeping, on-call runbooks, and whether theming can be owned by a support engineer rather than the core team.Themer::forTheme()) means branded emails, PDFs, and invoices can be treated as a theming concern rather than a separate templating project. Similarly, the modular/laravel-modular integration lets a PM position "themes" and "modules" as one packaging story for an internal app marketplace.Consider it when:
package.json is a real operational trade-off: better isolation, more build surface. If your CI is already fragile, this adds to it.Look elsewhere / build it yourself when:
Minimum evaluation gate before adoption: a timeboxed spike that (a) runs themer:install and theme:check/theme:doctor clean on a branch, (b) builds two themes with inheritance plus one Livewire component override, (c) confirms the production cache path works under your deploy, and (d) records a named internal owner and an exit plan.
For executives (the 30-second version): We have a recurring request to make the product look like different brands — for resellers, for white-label deals, for campaign skins. The default answer is a fork per brand, which multiplies maintenance and slows every release. This is an MIT-licensed Laravel package that gives us that capability out of the box: separate themes, shared base, per-brand preview links for customer sign-off, and diagnostics so it can run in production safely. The realistic alternative is one to three engineer-weeks of our own code plus permanent ownership of it. The catch is maturity: it is a young, single-maintainer project, so my recommendation is a timeboxed trial behind a flag, with a pinned version and an internal owner — not a wholehearted platform commitment. Cost of finding out is low; cost of a surprise is contained by the fallback.
For engineering (the honest version):
This is a thin, well-instrumented resolver, not a framework. It owns four things: a cached view/translation/Livewire resolution chain with parent-theme inheritance, per-theme Vite/npm wiring, a theme.json manifest with validation, and a CLI surface for lifecycle and diagnostics. The blast radius is bounded — if it fails, we lose theme switching, not the app. Three concerns to plan for: (1) bus factor of one, so we pin the version and treat the repo as forkable; (2) build complexity, since per-theme Vite configs and npm workspaces add CI surface we must own; (3) framework coupling — the package tracks Laravel and Livewire majors closely, so our upgrade cadence becomes its upgrade cadence. Ask: one engineer-day for a spike, then a two-week trial on a single low-traffic surface with theme:doctor and theme:graph wired into CI as the pass/fail signal. If the spike is clean, we wrap it behind our own interface so the dependency stays swappable.
How can I help you explore Laravel packages today?