Dynamic Fields by Spiggle
CommunityA plug-and-play Filament package that attaches custom fields and validation rules to any Eloquent model.
Author:
Spiggle
Package health
Automated checks of this plugin's Composer package
15 checks
- Passed: GitHub Actions pinned to SHA
- Skipped: GitLab CI includes pinned to SHA
- Passed: Open security advisories
- Passed: Dependabot PR responsiveness — No stale Dependabot PRs.
- Skipped: Renovate MR responsiveness
- Passed: Dependabot or Renovate configured
- Passed: Dependency update cooldown configured
- Passed: Provides a security policy
- Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
- Passed: Commit and release recency — Active: last commit 0 days ago; last release 0 days ago.
-
Passed:
composer.lock not committed by library
—
composer.lockis absent from the released dist archive. - Passed: Dist archive is lean
-
Passed:
Current Laravel version supported
—
Package dependencies resolve together with current Laravel
13.0. -
Passed:
Current PHP version supported
—
Constraint
^8.2supports current PHP8.5. - Skipped: Current Symfony version supported
filament/
namespace. Review the source and install at your own risk. Found
malware or an unresolved security issue the author won't
address?
Report it
.
Documentation
- Why use Dynamic Fields?
- Community Edition field types
- Pro field types & features
- Requirements
- Installation
- Quick start
- Artisan commands
- Related
- Security
- License
Custom fields for Laravel + Filament — no migrations per field, no redeploy.
Create and manage fields from the admin panel. Values live in indexed EAV tables and appear on forms, table columns, and infolists automatically.

| Package | spiggle/dynamic-fields-core v2.1.4 |
| License | MIT (Community Edition) |
| GitHub | skillbobby/Spiggle-Dynamic-Fields-Core |
| Docs | Product site & guide |
#Why use Dynamic Fields?
- No-code field creation — define labels, types, validation, and options in the Filament panel
- No migration per field — add fields without schema changes or redeploys
- Filament-native — maps to standard Filament form inputs, table columns, and infolist entries
- EAV storage — indexed
custom_fields,custom_field_options, andcustom_field_valuestables (not a bloated JSON column) - Built-in validation — Laravel rules (
required,email,min/max,regex, etc.) configured in the UI - Table columns included — toggleable, searchable columns for every saved field
- Model-agnostic — attach fields to Users, Products, or any Eloquent model
- Export / import — move field definitions between environments as JSON
- Pro-ready — registry hooks let the licensed add-on register advanced field drivers
#Community Edition field types
These 12 types are included free in Core:
text |
email |
phone |
url |
number |
textarea |
select |
radio |
date |
datetime |
boolean |
toggle |
#Pro field types & features
Need file uploads, rich text, tags, or conditional logic? Upgrade to Dynamic Fields Pro — a separate licensed add-on that installs alongside Core.
| Pro-only | |
|---|---|
| File uploads | Spatie Media Library collections |
| Tags | Colored badge tags |
| Multi-select | Searchable multi-choice fields |
| Rich textarea | WYSIWYG editor (RichEditor) |
| Conditional visibility | Show/hide fields with visible_when rules |
| Clone | Duplicate field definitions in one click |
| License management | Activate and manage your Pro license in Filament |
Business / unlimited-site licensing: Get Business license.
#Requirements
- PHP 8.3+
- Laravel 13
- Filament ^5
#Installation
#1. Require the package
composer require spiggle/dynamic-fields-core
#2. Publish config & migrations, then migrate
php artisan vendor:publish --tag=dynamic-fields-config
php artisan vendor:publish --tag=dynamic-fields-migrations
php artisan migrate
#3. Register the Filament plugin
In your panel provider (e.g. app/Providers/Filament/AdminPanelProvider.php):
use Spiggle\DynamicFields\Filament\DynamicFieldsPlugin;
$panel->plugin(DynamicFieldsPlugin::make());
This adds the Custom Fields resource under System in your panel navigation.
#4. Add HasCustomFields to your model
use Spiggle\DynamicFields\Traits\HasCustomFields;
class User extends Authenticatable
{
use HasCustomFields;
}
Include custom_fields in your model's $fillable (or use syncCustomFields() in a page hook) so Filament can persist nested field state.
#5. Wire CustomFieldMapper in your Filament resource
Form:
use Filament\Schemas\Components\Section;
use Spiggle\DynamicFields\Facades\CustomFieldMapper;
Section::make('Custom Profile Data')
->schema(CustomFieldMapper::makeFormFields(User::class));
Table (eager-load to avoid N+1):
User::query()->withCustomFields()
// ...
...CustomFieldMapper::makeTableColumns(User::class)
Infolist:
CustomFieldMapper::makeInfolistEntries(User::class)
#Quick start
- Sign in to your Filament panel.
- Go to System → Custom Fields.
- Click New Custom Field, choose a target model, set label + type, add validation rules.
- Save — the field appears on that model's resource form and is available as a table column.
Seed 23 standard User profile fields:
php artisan dynamic-fields:seed-user-fields
#Artisan commands
| Command | Description |
|---|---|
dynamic-fields:seed-user-fields |
Seed standard User profile fields |
dynamic-fields:export |
Export definitions to JSON |
dynamic-fields:import {path} |
Import definitions from JSON |
dynamic-fields:verify |
Health-check tables, mapper, and persistence |
#Related
- Full documentation — architecture, workflows, configuration
- Live demo —
[email protected]/password - Spiggle Form Builder — public forms that reuse the same field types
#Security
Please report vulnerabilities privately — see SECURITY.md. Do not open a public issue for security problems.
#License
MIT — see LICENSE. Community Edition is free and open source. Pro is a separate commercial add-on.
The author
From the same author
Form Builder
A lightweight, open-source package that brings powerful, database-driven form generation to your Laravel and Filament applications.
Author:
Spiggle
Rules Engine
Tenant-scoped lifecycle rules for Laravel Filament — fire actions when members hit age milestones, tenure, inactivity, or spend thresholds.
Author:
Spiggle
Soffit Theme
A soft, calm admin shell for Laravel Filament. Soffit softens the Filament experience with a full-height white sidebar, rounded cards, quiet ambient shadows, and warm teal & brass accents.
Author:
Spiggle
Material Theme
A professional Material Design-inspired theme built for Laravel Filament. Perfect for developers and teams who want a sleek, modern admin interface with customizable branding, responsive layouts, and enhanced usability.
Author:
Spiggle
Featured Plugins
A selection of plugins curated by the Filament team
Blueprint
Filament Blueprint is a premium Laravel Boost extension that helps AI agents produce accurate, detailed implementation plans and security reports for Filament apps.
Filament
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle
Spotlight Pro
Browse your Filament Panel with ease. Filament Spotlight Pro adds a Spotlight like Command Palette to your Filament Panel.
Dennis Koch