entelechy / architect
Architect — a Laravel package for building data-rich admin interfaces with tables, navigation, stats, toolbar, and supersearch.
Requires
- php: ^8.3
- illuminate/support: ^13.0
- livewire/livewire: ^4.3
- maatwebsite/excel: ^3.1
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.0
- orchestra/testbench: ^11.0
- phpunit/phpunit: ^12.0
Suggests
- laravel/mcp: Required to use the Architect MCP tools (Entelechy\Architect\Mcp\Tools\*).
This package is auto-updated.
Last update: 2026-07-22 15:41:25 UTC
README
A Laravel package for building data-rich admin interfaces with tables, forms, navigation, dashboards, stats, supersearch, and notifications — powered by Livewire 4.
Requirements
- PHP 8.3+
- Laravel 13
- Livewire 4.3+
Installation
composer require entelechy/architect
For local path-repository development, you can point Composer at either the
repository root or the package/ subdirectory. The repository root now ships a
Composer manifest specifically so Laravel package discovery still registers the
architect:* Artisan commands when the whole repo is required locally.
Publish package views only if you want to override the shipped Blade templates.
Initialize the project setup and install hooks:
php artisan architect:init
architect:init now acts as the installation wizard:
- publishes
architect-configautomatically if it is missing, - publishes
architect-assetsautomatically if they are missing, - locks Architect's foundational setup choices into
config/architect.php, - optionally wires a Blade layout with
@architectStyles,@architectScripts, and<livewire:architect-toast-manager />, - supports non-interactive layout wiring via
--layout=resources/views/layouts/app.blade.php, - supports preview mode via
--dry-run, - is also available as
php artisan architect:install.
The install wizard prints an Architect banner in the terminal and mirrors Laravel's first-run feel, while still keeping layout changes explicit and reversible.
Examples:
# Interactive install php artisan architect:install # Wire a specific layout non-interactively php artisan architect:init --layout=resources/views/layouts/app.blade.php # Preview all changes without writing files php artisan architect:init --dry-run --layout=resources/views/layouts/app.blade.php
If you want to override package Blade views directly, publish them separately:
php artisan vendor:publish --tag=architect-views
Run the migrations:
php artisan migrate
This interactive command asks five questions and permanently locks the answers into config/architect.php:
| # | Option | Lock class |
|---|---|---|
| 1 | Persistence backend mode (localStorage or database) |
Hard |
| 2 | Tenancy mode (single or multi) |
Hard |
| 3 | State table name | Hard |
| 4 | State storage DB connection | Soft |
| 5 | Architect auth guard | Soft |
- Hard-locked options cannot be changed on a re-run unless you pass
--break-glass(which also requires a second explicit confirmation, since it can orphan existing persisted state). - Soft-locked options can be changed with
--force-reconfigure. Use--only=state_connection,auth_guardto restrict a reconfigure run to specific soft-locked keys, guarding against accidentally drifting others. - Choosing
databasepersistence mode generates a migration for the state table (skip with--no-migrationif you want to hand-write it). - Inspect the current locked state at any time with:
php artisan architect:setup:status
database persistence mode is what backs server-side storage of remembered/bookmarked table filters and hidden columns (see Tables below) instead of the browser's localStorage.
Quick start
A table
use Entelechy\Architect\Facades\Architect; use Entelechy\Architect\Table\Columns\TextColumn; public function definition(): array { return Architect::table() ->model(User::class) ->columns([ TextColumn::make('name')->sortable()->searchable(), TextColumn::make('email')->sortable(), ]) ->build(); }
A form
use Entelechy\Architect\Facades\Architect; use Entelechy\Architect\Forms\Fields\TextField; use Entelechy\Architect\Forms\Fields\SelectField; public function definition(): array { return Architect::form() ->fields([ TextField::make('name')->required(), SelectField::make('role')->options(['admin' => 'Admin', 'user' => 'User']), ]) ->build(); }
Features
- Tables — sortable, filterable, searchable, exportable, bulk actions, permissions, row actions
- Forms — 28 field types, conditional logic, autosave, wizard builder, repeaters
- Navigation — tab-based SPA navigation with dynamic tabs
- Dashboards — stat cards, charts, embedded tables, quick-form panels
- Supersearch — global cross-resource search with keyboard shortcut
- Notifications — toast, alert, inbox, and announcement delivery via rule engine
- MCP tools — AI-assistant integration via the Laravel MCP server
- Actions — slide-over create/edit/view panels driven by a fluent API
Documentation
Full documentation is available at the Architect website.
License
MIT. See LICENSE.