- How do I install Aura CMS in a Laravel application?
- Install it with composer require eminiarts/aura-cms, then run php artisan aura:install. The installer publishes config and assets, runs the package migrations, connects your application user model, creates a Global Admin, and pulls in Fortify, Sanctum and Intervention Image. On a greenfield app that is realistically a few days to a working admin; on an existing app, reconcile your auth flows, roles and /admin route ownership before you install.
- Which PHP, Laravel and Livewire versions does Aura CMS support?
- Verify against composer.json in the exact tag you install, because the README, AGENTS.md and changelog disagree on ranges. The 0.2.x line targets PHP 8.1 with Laravel 10 to 11 and Livewire 3, while the 1.0 beta line targets PHP 8.4 with Laravel 12 to 13 and Livewire 4. Composer's default stability resolves the 0.2.x branch, so require eminiarts/aura-cms:^1.0@beta explicitly if you want the 1.0 line.
- Do I need database migrations for my Aura CMS content types?
- No. Fields are stored as meta by default, so a resource class alone is a working content type with no migration. When a resource outgrows meta storage, for example because it needs joins, indexes, aggregation or reporting, you can promote it to its own dedicated table.
- How do I create a custom content type in Aura CMS?
- Add a class in app/Aura/Resources that extends Aura\Base\Resource, set the type and slug, and declare your fields in getFields(). Aura generates a full CRUD interface at /admin/{slug} with a sortable, filterable and searchable table plus validated create and edit forms. Field definitions reference field classes such as Text, Wysiwyg, BelongsTo or repeater types.
- How do I add a custom field type to Aura CMS?
- Run php artisan aura:field to scaffold your own field type on top of the 42 built-ins, which cover text, dates, media, relationships, repeaters, tabs and panels. Custom fields use the same form and table rendering pipeline as the built-in fields, so they appear in the resource editor without extra wiring.
- How does Aura CMS handle permissions and roles?
- Aura uses policy-based permissions, so access to a resource is controlled through Laravel policies rather than a bespoke permission screen. Installation creates a Global Admin and wires authentication through Fortify and Sanctum. If you already run Spatie permissions or custom roles, decide how they map onto Aura's users and policies before installing, since auth and the user model are the highest blast-radius integration points.
- Can Aura CMS be used in a multi-tenant Laravel application?
- Yes, it offers optional teams with automatic global scoping, which removes a lot of hand-written tenancy plumbing from a multi-tenant admin. The risk is that scoping silently leaks or hides rows, so a deliberate cross-tenant access test suite is mandatory rather than nice to have. Verify behavior per resource on anything that touches tenant data.
- Is Aura CMS production-ready, and what are the alternatives?
- It is MIT licensed but still pre-1.0: there is no stable v1.0.0 tag, only betas up to beta.4, public adoption signals are thin, and the vendor is a single agency with no commercial SLA. Lock the minor, pin the tag, schedule upgrade passes, and budget an internal fork as your contingency. Alternatives such as Filament are schema-first, while Aura's differentiator is meta-first storage with a generated admin, so weigh that trade-off rather than feature counts.
- Will Aura CMS meta storage hurt query performance or reporting?
- Meta storage keeps discovery fast, but the data lives in meta attributes rather than joined columns, so BI, exports, partner integrations and search indexes will feel the difference. JSON containment queries were only recently made portable beyond MySQL, so verify explicitly on Postgres and SQLite. Plan the promotion path to dedicated tables per resource as a roadmap item, not an emergency.
- Does Aura CMS work with Laravel Octane and queue workers?
- Aura ships Aura::flushState(), AuraFake cleanup and Octane-related fixes, which indicates request-state pollution has been a real failure mode in long-running processes and workers. Exercise your resources under Octane or inside jobs before trusting them in production, and flush state explicitly between requests if you see stale data. Treat this as a testable risk, not an assumption.