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: ^3.0
Requires (Dev)
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^12.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-11-12 20:30:20 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,DateColumn,SelectFilter,InputFilter, andDateFilterform()with typed fields such asTextInput,Textarea,NumberInput,DateInput,FileUpload,RichText,PasswordInput,BelongsTo,BelongsToMany,Select,Checkbox, andToggle, plus optional layout nodes such asSectionandTabwhen grouping is truly neededdetail()/infolist()with typed entries such asTextEntryrelations()with inverseHasOneandHasManyrelation managers for protected attach, detach, replace, sync, and nested create flowsactions()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
- Read the documentation
- AI Harness: local MCP (alpha) — setup, model inspection, preview/create/update workflow, sample prompts and safety limits.
Current Scope
The repository currently contains a working package runtime:
- 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
- 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 package is still beta-stage, but the core resource runtime, table engine, form engine, detail views, actions, relations, and operator workspace surfaces are now implemented enough for host-app validation.
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.
Tagged releases include prebuilt frontend assets, which the installer publishes to public/vendor/flashboard/build without a Node/Bun requirement in the host app. Source checkouts missing the Vite manifest can still build in-place. Use php artisan flashboard:build-assets for development or explicit rebuilds.
For security, define a Laravel Gate ability named accessFlashboard in the host app. No authenticated user is allowed into the panel until that Gate is defined and grants access. See installation and access.
AI Harness (alpha)
Flashboard includes a local stdio MCP server for Codex, Claude and other coding agents. It inspects Eloquent model metadata and previews, creates or updates basic PHP Resources in the host Laravel app. The nine MCP tools can also generate basic Eloquent relationship fields/managers and incrementally add fields or relations to managed Resources using preview-first writes. They do not read or change business records.
The current package already depends on laravel/mcp; enable the server in the host app when needed:
FLASHBOARD_AI_MCP=true
Connect your coding agent to php /absolute/path/to/host-app/artisan mcp:start flashboard. A safe first prompt: "Inspect my models and preview an admin Resource; don't write files yet." See the AI Harness guide for the full workflow, specification example and limitations.
Local Development
composer ibun ibun run buildcomposer testcomposer analyse
Notes
- Flashboard is beta-stage: public contracts should stay explicit and versioned as the package hardens.
- The panel route boots through an Inertia root view and Vue page shell.