pepperfm / flashboard
Backend-driven Laravel admin runtime package for internal panels.
Requires
- php: ^8.4
- illuminate/config: ^13
- illuminate/console: ^13
- illuminate/contracts: ^13
- illuminate/database: ^13
- illuminate/events: ^13
- illuminate/http: ^13
- illuminate/pagination: ^13
- illuminate/routing: ^13
- illuminate/support: ^13
- inertiajs/inertia-laravel: ^2.0
Requires (Dev)
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^12.5
This package is auto-updated.
Last update: 2026-03-23 05:51:21 UTC
README
Flashboard is a backend-driven Laravel admin runtime package for internal panels. Full documentation lives at flashboard.pepperfm.com.
The current primary DX is a typed, declarative resource API:
table()with typed columns and filters such asTextColumn,BadgeColumn,SelectFilterform()with typed fields and a schema-first flow for simple CRUD forms, plus optional layout nodes such asSectionandTabwhen grouping is truly neededdetail()/infolist()with typed entries such asTextEntryactions()andpages()as part of the same package-owned resource surface model
Legacy array definitions remain supported as a compatibility bridge while host apps move to the typed DSL.
Documentation
Current Scope
The repository currently contains the package foundation:
- Composer package metadata and Laravel package discovery
- A Flashboard service provider and install command
- Baseline panel configuration and
/adminroute registration - Public panel, page, resource, table, form, detail, action, and navigation contracts
- Initial fluent builder layer, typed schema node DSL, and discovery registries for panels, resources, and pages
- Runtime metadata, screen resolution, lifecycle hooks, and payload assembly for page/resource screens
- Package auth flow, route registrar, panel shell layout, permission-aware navigation, and Eloquent-backed list screen data source
- Create/edit persistence, detail hydration, relation payloads, action execution, and custom workspace page support
- Versioned UI payload envelope, renderers, policy bridge, notifications/overlays/state/theme, extension hooks, playground tooling, and test/quality scaffold
- Inertia + Vue panel shell with
@inertiaHead,@inertia, a Vite-powered app entry, and Nuxt UI component primitives - A real Inertia root view and Vue page shell so host applications can verify package wiring through the client runtime
The full resource runtime, table engine, form engine, detail views, and operator workflows are still planned and tracked in .ai-factory/ROADMAP.md.
Install In A Host Laravel App
- Require the package in the host application.
- Run
php artisan flashboard:install. - Generate a panel provider with
php artisan flashboard:make-provider. - Generate a resource or page with
php artisan flashboard:make-resource/flashboard:make-page. - Visit your panel path.
Generated resources now use the typed DSL by default and keep legacy arrays only as a migration fallback.
Local Development
composer ibun ibun run buildcomposer testcomposer analyse
Notes
- The package is intentionally bootstrapped before feature completion.
- The panel route now boots through an Inertia root view and Vue page shell.