Search by

pepperfm / flashboard

PepperFM

Backend-driven Laravel admin runtime package for internal panels.

Package info

github.com/pepperfm/flashboard

pkg:composer/pepperfm/flashboard

Statistics

Installs: 14

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.2.4 2026-05-29 16:19 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 as TextColumn, BadgeColumn, DateColumn, SelectFilter, InputFilter, and DateFilter
  • form() with typed fields such as TextInput, Textarea, NumberInput, DateInput, FileUpload, RichText, PasswordInput, BelongsTo, BelongsToMany, Select, Checkbox, and Toggle, plus optional layout nodes such as Section and Tab when grouping is truly needed
  • detail() / infolist() with typed entries such as TextEntry
  • relations() with inverse HasOne and HasMany relation managers for protected attach, detach, replace, sync, and nested create flows
  • actions() and pages() 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 a working package runtime:

  • Composer package metadata and Laravel package discovery
  • A Flashboard service provider and install command
  • Baseline panel configuration and /admin route 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

  1. Require the package in the host application.
  2. Run php artisan flashboard:install.
  3. Generate a panel provider with php artisan flashboard:make-provider.
  4. Generate a resource or page with php artisan flashboard:make-resource / flashboard:make-page.
  5. 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 i
  • bun i
  • bun run build
  • composer test
  • composer 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.