Fields, columns, filters, actions, relation managers and dashboard widgets, generated from a single PHP class. Vue SPA frontend.
Three steps, all inside your Laravel project.
A PHP class with the fields, columns, filters and actions of your model.
A /schema endpoint and a JSON API, protected with Sanctum and the model’s Policies.
A precompiled Vue frontend renders the form, the table and the filters from the schema.
Every piece is defined in PHP, inside the Resource itself, served through a single /schema endpoint.
Text, Select, Date, Toggle, File, Image, Repeater and RichEditor, each with its own validation rules.
Computed columns, badges and images with value()/color() closures, not just attribute pass-through.
View, Edit, Delete, Restore, ForceDelete plus custom actions with their own schema and handler, with bulk support.
Reusable table filters, applied directly on the Resource query.
Attach/Detach and relation-specific actions, managed from the parent Resource's own panel.
Stat cards with value, color, icon and description, computed on every dashboard request.
A Vue component of your own, sharing Arrel's instance or fully isolated with registerMountablePage.
A custom TenantResolver and a configurable middleware; Arrel imposes no strategy of its own.
fields(), columns() and actions() are enough to generate the form, the table and the endpoints. No separate authorization DSL: canViewAny(), canEdit()… delegate to the model's Policy.
Read the Resources guide →final class PostResource extends Resource { protected static string $model = Post::class; protected static string $icon = 'document-text'; public function fields(): array { return [ Text::make('title')->rules('required', 'max:255'), Select::make('status')->options(['draft', 'published']), Toggle::make('is_featured'), ]; } public function columns(): array { return [ Column::make('title')->searchable()->sortable(), Column::make('status')->as('badge'), ]; } public function actions(): array { return [ViewAction::make(), EditAction::make(), DeleteAction::make()]; } }
License per production application.
For a single project.
Renews at 19€ / year
Contact usFor unlimited applications and the whole team.
Renews at 49€ / year
Contact us