joshbonnick/filament-faker
A Filament plugin that brings FakerPHP into your admin panel, letting you generate realistic fake data for forms, tables, and seeders. Populate fields and test resources with random names, emails, dates, and more without leaving Filament.
Architecture fit: filament-faker is a Filament plugin (namespace joshbonnick/filament-faker) that layers Faker-powered fake-data generation onto Filament form fields, presumably via a form component / action that populates inputs with generated values. Architecturally this is a thin, additive layer: it registers a Filament form component and depends on Filament's form builder and fakerphp/faker. That means it does not touch our domain models, persistence layer, or HTTP surface — integration is confined to Filament resource/ form definitions, which is the lowest-risk place to absorb a third-party package. Fit is good if we are already on Filament v3 and PHP 8.1+; poor if we are on a Livewire-free or non-Filament admin stack, in which case the package has no useful surface.
Integration feasibility: High, in principle. Adoption is opt-in per form (->schema([... FakerField::make(...)])) rather than global, so we can pilot on a single internal resource. The v1.1.1 release itself is non-functional — it only applies formatting hooks (Pint/lint CI) across the 1.x branch. No API surface, no dependency constraint, and no published behaviour changes. Feasibility risk therefore sits entirely with the package's baseline state (v1.1), not with this patch.
Technical risk: Low-to-moderate, and almost none of it originates from v1.1.1. Concretely:
@joshbonnick), small PR volume (PR #26 at 1.1.1). No security surface to speak of (dev-only data generation), but abandonment risk is real.Key questions:
fakerphp/faker and Filament constraints pinned to ranges compatible with our composer.lock?Stack fit: Assumes Laravel 10/11 + Filament v3 + PHP 8.1+, with fakerphp/faker already present transitively via Laravel dev dependencies. If our admin panel is Filament-based, this is a drop-in. If we are on Nova, Backpack, or hand-rolled Blade admin, the package is inapplicable and the assessment terminates here — do not force it.
Migration path: No migration. There is no schema, no config publish step assumed, and no data contract. Adoption is: composer require --dev joshbonnick/filament-faker:^1.1, register the plugin/component in the target panel provider, then annotate individual form fields. Rollback is a one-line revert plus composer remove — no residual state.
Compatibility: v1.1.1 changes nothing functional relative to 1.1, so any compatibility conclusion drawn at 1.1 carries forward verbatim. Treat 1.1.1 as the pin floor rather than a considered upgrade: the only delta is code style. Confirm the package's composer.json constraints against our locked Filament and Faker versions before committing; a caret constraint on filament/filament is the usual source of surprise transitive downgrades.
Sequencing:
app()->isLocal() / non-production guard so the generator cannot appear in customer-facing panels.Maintenance: Effectively zero ongoing cost. The package is dev-scoped and stateless; no jobs, no queues, no config caches, no scheduled tasks, no storage. Upgrades are composer update on a dev dependency, and a formatting-only patch is the cheapest possible release to absorb.
Support: Internal only. There is no vendor SLA and one maintainer; if it breaks against a future Filament major, we either pin the old Filament or fork. Given the surface area (one form component), a fork or a 50-line in-house replacement is a credible fallback — factor that into the build-vs-buy call: this is close to the threshold where writing it ourselves is cheaper than tracking someone else's repository.
Scaling: Not applicable in the runtime sense — no per-request cost outside form renders in non-production environments. The only scaling consideration is team-wide: once adopted, more resources will use it, which raises the cost of removal (grep-and-replace across resource classes) but not operational load.
Failure modes:
fakerphp/faker blocking a Laravel upgrade. Mitigation: keep it in require-dev so it cannot block production resolution.Ramp-up: Negligible for anyone already fluent in Filament form schemas — under an hour, no docs required beyond the README. For developers new to Filament, the package adds no incremental learning burden. Documentation is the weakest dimension: a single-maintainer package with formatting-only release notes tells us little about intended usage, supported field types, or environment-guarding guidance, so plan to write a short internal usage note (one paragraph plus an example) as part of the pilot.
Assessment of v1.1.1 specifically: No action required. Formatting-hook application only; no breaking changes, features, or deprecations. It is a positive hygiene signal (CI linting now enforced on the 1.x branch) and nothing more. Pin ^1.1.1 when adopting so we start from the formatted baseline rather than 1.1.
How can I help you explore Laravel packages today?