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

Aura Cms Laravel Package

eminiarts/aura-cms

Aura CMS is a Laravel content management system built on the TALL stack. Define content types as PHP classes and Aura generates the admin panel around them, complete with forms, tables, search, media, and permissions.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

Aura is a resource-class-driven admin generator on the TALL stack: an Eloquent model declares its fields, and Aura derives tables, forms, validation, media, and policy-based permissions. Fit is strongest where the domain is CRUD/editorial-shaped and the team already ships Livewire:

  • Agency client portals and internal back-office tools where the admin panel is the product surface.
  • Early-stage products with unstable content models — the "no migrations, fields as meta, promote to a real table later" model directly compresses discovery-to-demo time.
  • Multi-tenant SaaS admins, where optional teams with automatic global scoping removes a large chunk of hand-written tenancy plumbing.

Fit is poor where the admin is a thin shell over a complex domain service layer, where a public API rather than an operator UI is the primary consumer, or where the content schema is already settled — at that point Aura's main differentiator (schema-free meta storage + visual resource editor) buys nothing and you inherit its coupling.

The meta-first bet is the architectural decision a TPM must own. It is genuinely valuable for unknown requirements. It is a liability for anything downstream that needs joins, indexes, aggregation, or a stable data contract (BI, exports, partner integrations, search indexes). Plan the promotion path to dedicated tables per resource as a roadmap item, not an emergency.

Integration feasibility

Installing is not inert: aura:install publishes config and assets, runs package migrations, connects the application user model, creates a Global Admin, and pulls in Fortify, Sanctum, and Intervention Image. On greenfield this is a fast, low-friction path — realistically days to a working admin. On brownfield it is a reconciliation project: existing auth flows, existing roles/permissions (Spatie or custom), existing user table shape, and route ownership all need a decision before install.

Two concrete traps worth flagging to the team up front:

  • Composer stability. Default stability resolves ^0.2.x; the 1.0 line requires eminiarts/aura-cms:^1.0@beta explicitly. A developer who runs composer require without reading the README lands on a fundamentally different support matrix (PHP 8.1 / Laravel 10–11 / Livewire 3 vs PHP 8.4 / Laravel 12–13 / Livewire 4).
  • Documentation drift. The README, AGENTS.md, and changelog/0.1.0.md disagree on PHP and Laravel ranges. Assume docs describe intent, verify against composer.json in the tagged release you actually install.

Technical risk

  • Vendor concentration. Emini Arts is a single agency, the repo shows 0 stars and 0 dependents, and there is no stable v1.0.0 tag — only betas running to beta.4. There is no commercial SLA. Mitigation is MIT licensing: budget an internal fork as the contingency, not a hypothetical.
  • Pre-1.0 churn. UPGRADING.md states 1.0 is a fresh baseline, not an automated upgrade from 0.x. Lock the minor, pin the tag, and treat upgrades as scheduled work with a regression pass.
  • Auth and route takeover. Aura assumes ownership of /admin, Fortify-backed auth, and the user model. This is the highest-blast-radius integration surface and the most likely source of scope creep.
  • Meta-storage query portability. The beta.4 note that whereMetaContains moved to portable JSON containment (previously MySQL-only) tells you this area was recently fragile. Any Postgres or SQLite deployment needs explicit verification.
  • Request-state leakage. Aura::flushState(), Octane support, and the AuraFake cleanup work in the changelog all point at state pollution being a real historical failure mode in queue workers and long-running processes.
  • Tenancy blast radius. Automatic team scoping is a convenience until it silently leaks or hides rows. Any multi-tenant use requires a deliberate cross-tenant access test suite.

Key questions to resolve before commit

  1. Greenfield or brownfield — and if brownfield, who owns reconciling Aura's users/roles/permissions tables with what already exists?
  2. Which resources need real tables on day one, and what is the trigger/threshold for promotion?
  3. Is any downstream system (BI, search, partner API) going to read content that today lives in meta JSON?
  4. Which release line is the target — 0.2.x stable or 1.0 beta — and who signs off on the beta support matrix?
  5. What is the exit cost? How many resource classes, custom fields, and customized components would need re-hosting on Filament or hand-rolled Livewire?
  6. Does the team actually have Livewire/Tailwind depth, or is this introducing a stack they'd be learning while delivering?

Integration Approach

Stack fit

Aura is additive only if the host app is already Laravel 12/13 on Livewire 4 with PHP 8.4, or can get there. If the app is on Laravel 10/11 and Livewire 3, the honest options are: target the 0.2.x line (accepting an upgrade cliff later), or schedule a framework upgrade as a prerequisite workstream. Do not straddle. Confirm the installed tag's composer.json against the app's actual matrix before committing to either.

Migration path

Two viable routes:

  • Greenfield admin, existing app. Install Aura against the existing user model, disable or adapt Fortify where an identity provider already exists, and let Aura own /admin while the public app stays untouched. Cleanest boundary.
  • Brownfield everything. Treat Aura as a new bounded context. Keep its users/roles tables if the policy model is acceptable; otherwise bridge to existing ACL with a thin adapter and accept that you are diverging from the documented happy path.

aura:database-to-resources is the interesting accelerator for brownfield: generate resources from existing tables, then decide which stay table-backed and which become meta-backed. Use it as a one-way import, not a bidirectional sync.

Compatibility

Pin composer.json to an exact tag, commit the lockfile, and add a CI job that installs from a clean cache to catch stability-resolution surprises. Verify on the project's actual database engine — Postgres in particular, given the recent JSON containment change. Check that published assets and aura:install output are reproducible from a scripted, non-interactive path so CI and new environments don't depend on a wizard.

Sequencing

  1. Spike (3–5 days, throwaway branch). Non-interactive install, two representative resources — one simple, one with relationships and media — one policy and one team scope. Output: a written go/no-go with measured time-to-CRUD.
  2. Coexistence proof (1 week). Confirm Aura's auth, routes, and permissions sit alongside the existing app without regression. This is the gate that kills bad fits early.
  3. Pilot (1 sprint). Ship one real, low-risk resource to real internal users. Instrument query counts on the meta-backed table and admin page latency.
  4. Scale-out gate. Only after the pilot, define the resource inventory, the table-promotion policy, and the custom-field budget.
  5. Fork readiness. Before the second resource goes live, confirm the codebase is buildable from a fork with a green test suite, so the exit option is real rather than theoretical.

Operational Impact

Maintenance

Ongoing cost is upgrade-driven rather than bug-driven. Aura tracks Laravel and Livewire majors tightly — the 1.0 baseline moved all three at once — so the app inherits Aura's cadence plus its own. Budget one focused upgrade per year plus a regression pass over every customized resource and component. Published views and components are a customization surface that will drift; keep a short list of what has been overridden and why. Expect a real, non-zero cost from the 0.x→1.0 transition if you start on 0.2.x.

Support

No vendor SLA, no commercial support tier — GitHub issues and docs. Mitigations a TPM can actually buy: internal ownership of the fork, a pinned version, a written list of Aura-internal files the team is willing to patch, and a small budget for a contractor to absorb a hard upstream fix if needed. The LLM-friendly docs (llms.txt, .md on any page) materially reduce ramp-up and are a legitimate mitigation for thin human support — treat them as a primary reference, not an afterthought.

Scaling

Three axes to instrument from the pilot, not after:

  • Admin page latency. Livewire round-trips per interaction; Aura's batched table rendering for BelongsTo/Image and preloaded Tags/AdvancedSelect columns suggest N+1 was a real problem. Measure query count per index page as the resource count grows.
  • Meta table growth. A shared meta table concentrates write and read volume. Track row counts and slow queries per resource; define the promotion threshold (row count, query latency, or reporting need) in advance so promotion is a scheduled task.
  • Media. Thumbnails via Intervention Image means CPU and storage on upload. Decide the storage driver and whether image processing is synchronous or queued before content teams start uploading.

Octane and queue workers are supported but require deliberate validation: long-running processes with framework-level request state need flushState behavior exercised, not assumed.

Failure modes to watch

  • Teams scoping silently filtering (or failing to filter) rows — cross-tenant leakage is the worst-case outcome and warrants dedicated tests.
  • Permission defaults left permissive after install; the Global Admin convenience role should not survive into production as a shared account.
  • Meta fields with unknown or renamed slugs degrading quietly (v0.2.0 fixed handling here — treat renames as data migrations).
  • Rollback behavior on package migrations touching host-owned tables; verify forward and back on a copy.
  • Composer stability silently resolving an older line on a fresh clone or new CI runner.
  • Queue/Octane state bleed manifesting as wrong-tenant or stale-field writes under load.

Ramp-up

Developers already fluent in Livewire and Tailwind need roughly a week to be productive in the resource DSL; the 42-field vocabulary and the tab/panel/repeater nesting are the real learning curve, plus the __get attribute resolution order that beta.4 finally documented in one place. Developers new to the TALL stack need three to four weeks before they can debug Aura internals under pressure. Restrict the visual resource editor to local development (it is already gated to local + super-admin) and keep the rule that resource definitions land via pull request, so the content model stays reviewable and diffable. Two senior names on the fork, one on the upgrade path — that's the minimum viable ownership model for a package this central.

TPM recommendation: proceed with a time-boxed spike and a single-resource pilot on a non-critical surface, on the 0.2.x stable line with an explicit written plan for the 1.0 migration; do not adopt as the system of record for any data that a reporting, search, or partner system depends on until the table-promotion path is exercised at least once.

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.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow