Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Moonlight Laravel Package

titasgailius/laravel-moonlight

Moonlight is a Laravel package for quickly building admin panels and CRUD interfaces around your Eloquent models. Define resources once and get searchable listings, forms, filters, and actions without writing repetitive controller or view code.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Moonlight is an install-time scaffolding preset, not a runtime library. It does not sit in the request lifecycle — it generates controllers, Vue pages, layouts, routes, Tailwind config, and auth scaffolding into your application, then gets out of the way. That is the single most important architectural fact: after install there is no vendor coupling, no dependency to upgrade, and no forced upstream path. Fit is high only if the target is a standard Laravel monolith on Inertia + Vue 3 + Tailwind. It is zero-fit for API-only, Livewire, or React shops.

Integration feasibility. Feasible as a one-time code generator (composer dev dependency + artisan install command), not as a long-lived dependency. Overlap with Laravel Breeze's Vue/Inertia stack and Jetstream means the real decision is "which scaffold," not "do we need this capability."

Technical risk — high. Last release 2023-01-03, 142 stars, score 1.01. The stack has moved materially since: Laravel 10/11, Inertia v1/v2, Vite replacing Mix, Tailwind 3→4. An 18+ month-old preset will likely pin older package versions and may fail to install cleanly on current Laravel. Support is effectively a single maintainer with no SLA.

Key questions.

  • Which Laravel and PHP versions are supported, and does install succeed on Laravel 10/11 without --with-all-dependencies gymnastics?
  • Does it ship Vite or Laravel Mix? Which Inertia, Vue, and Tailwind versions are pinned?
  • Is the generated auth scaffolding current (rate limiting, email verification, password reset, session handling)?
  • Is there a test suite covering the generated code, and is the license fork-friendly (MIT)?
  • How large is the delta from Laravel Breeze's Vue/Inertia output — is the opinionation worth the divergence?

Integration Approach

Stack fit. Adopt only if the team is committed to Vue 3 + Inertia + Tailwind and a server-driven, SPA-lite monolith. For Vue-fluent teams, the opinionated layout and component structure can save days of boilerplate. For teams without Vue/Inertia depth, the preset becomes a liability they cannot maintain.

Migration path. Treat Moonlight as one-time code generation, not a dependency. Install into a greenfield repo or throwaway spike branch, inspect generated files, then adopt them as your own code or fork the preset into an internal scaffold. Ejection is clean by design — no runtime coupling, no upgrade treadmill after the initial commit. Do not attempt to retrofit an existing application; there is no migration path for a live codebase.

Compatibility. Validate against your exact Laravel/PHP/Node versions before committing. Expect manual reconciliation of Inertia/Vue/Tailwind versions and a Mix→Vite migration if the preset predates that shift. Budget a half-day spike to confirm: clean install, working auth flow end-to-end, and a successful production build.

Sequencing.

  1. Spike install on a branch with pinned versions.
  2. Diff generated code against Laravel Breeze's Vue/Inertia output — if Breeze is close enough, prefer the officially maintained option.
  3. If Moonlight's structure wins, fork it internally and pin all versions.
  4. Scaffold the real application only after the fork is validated.
  5. Immediately add CI and tests around generated auth flows.

Operational Impact

Maintenance. Runtime maintenance is near-zero — the generated code is yours. Upstream maintenance is effectively absent: last release 2023-01-03 and low activity signal no fixes for future Laravel/Inertia/Tailwind releases. The operational cost shifts from "dependency upgrades" to "we now own this codebase," which is acceptable only if that ownership is explicit.

Support. Community only, single maintainer, 142 stars. No SLA, no security response process. Mitigate by forking into your org and owning it, or by choosing Breeze/Jetstream for an officially supported path.

Scaling. Not a horizontal-scaling concern — it is front-end scaffolding. The relevant scale is team size: an opinionated preset enforces consistency across contributors, which is a genuine win for onboarding and review. That same opinionation becomes a tax if it diverges from team conventions, and the tax compounds with headcount.

Failure modes.

  • Install failure on newer Laravel due to composer conflicts.
  • Stale Mix/Vite configuration breaking builds after a toolchain update.
  • Auth scaffolding missing newer security hardening (rate limiting, session handling).
  • Tailwind config conflicts when layering in component libraries.
  • Inertia version mismatch causing page-prop or middleware breakage.
  • Silent abandonment — no upstream path if a CVE lands in a pinned transitive dependency.

Most are detectable in the spike. The last one is structural and cannot be tested away; it must be accepted via fork-and-own.

Ramp-up. Low for teams already on Vue 3 + Inertia; moderate-to-high otherwise (Vue SFCs, Inertia routing/props, Tailwind utility workflow, plus a bespoke preset's conventions). Budget roughly a sprint of onboarding for developers new to Inertia before judging the preset's productivity claim.

TPM recommendation. Low strategic value at current maturity. The stale release date and 1.01 score make this a "fork or skip" decision rather than an adoption decision. Default to Laravel Breeze (Vue/Inertia) for the officially maintained path; adopt Moonlight only if a short spike proves a clean install on your target versions and its structure meaningfully beats Breeze — in which case vendor/fork it, pin it, and treat it as first-party code.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route