spiggle / form-builder-core
Filament Dynamic Form Builder for Laravel — Community Edition with single-page forms, public renderer, and CSV export.
Requires
- php: ^8.2
- filament/filament: ^3.3|^4.0|^5.0
- illuminate/database: >=11.0
- illuminate/support: >=11.0
- illuminate/validation: >=11.0
- livewire/livewire: ^3.0|^4.0
Suggests
- bezhansalleh/filament-shield: Role-based access for form and submission resources.
- spatie/laravel-activitylog: Audit logging for exports and bulk submission actions.
- spiggle/dynamic-fields-core: Reuse field types and mapper conventions; unified Spiggle Pro license page (Spiggle\DynamicFields\Licensing).
- spiggle/form-builder-pro: Unlock wizard/tabs/pages layouts, XLSX/PDF export, charts, clone, and email notify hooks.
README
Public forms for Laravel + Filament — build once, publish anywhere.
Create forms in the admin panel, share a public URL, and collect submissions without shipping a custom frontend for every intake form.
| Package | spiggle/form-builder-core v2.0.1 |
| License | MIT (Community Edition) |
| GitHub | skillbobby/Spiggle-Form-Builder-Core |
| Docs | Product site & guide |
Why use Form Builder?
- No-code form building — drag sections and fields in Filament; publish when ready
- Public renderer — self-contained Blade + Livewire UI that works without Filament CSS on the guest side
- Submission inbox — filter, review, archive, and export responses
- Validation & sanitization — Laravel rules on submit; HTML stripped from plain text
- Custom public paths —
/forms/{path}with conflict hashing - Dynamic Fields ready — reuses the same field type catalog when Dynamic Fields is installed
- Pro-ready —
FeatureCatalog/ProUnlockhooks let the licensed add-on unlock advanced layouts and exports
Community Edition features
Included free in Core:
| Single-page layouts | Public form URL + Livewire renderer |
| Submission manager | Status filters, bulk status/archive/delete |
| CSV export | Native fputcsv |
| Form JSON export/import | Move definitions between environments |
| Seed / verify commands | Sample forms + health checks |
| Audit log table | Exports and bulk actions recorded |
| Label positions | Above, inline, below, inside |
Pro features
Need multi-step flows, premium exports, or analytics? Upgrade to Form Builder Pro — a separate licensed add-on that installs alongside Core.
| Pro-only | |
|---|---|
| Wizard / Tabs / Pages | Stepped validation, client tabs, session drafts |
| XLSX + PDF export | SpreadsheetML Excel + printable PDF |
| Analytics charts | Submission volume and status widgets |
| Form clone | Duplicate a form in one click |
| Import from Dynamic Fields | Pull existing custom field definitions into a form |
| Email notify hooks | Store notify addresses for your FormSubmitted listeners |
| 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/form-builder-core
2. Publish config & migrations, then migrate
php artisan vendor:publish --tag=form-builder-config php artisan vendor:publish --tag=form-builder-migrations php artisan migrate
3. Register the Filament plugin
In your panel provider (e.g. app/Providers/Filament/AdminPanelProvider.php):
use Spiggle\FormBuilder\Filament\FormBuilderPlugin; $panel->plugin(FormBuilderPlugin::make());
This adds Forms and Submissions under your configured navigation group.
4. Open a public form
Published forms are served at:
/{FORM_BUILDER_ROUTE_PREFIX}/{base_path}
Default prefix: forms.
Quick start
- Sign in to your Filament panel.
- Go to Forms → Forms.
- Create a form, add fields, set Published.
- Share the public URL from the form list or view page.
Seed sample forms:
php artisan form-builder:seed
Artisan commands
| Command | Description |
|---|---|
form-builder:seed |
Seed sample forms and submissions |
form-builder:export |
Export form definitions to JSON |
form-builder:import {path} |
Import form definitions from JSON |
form-builder:verify |
Health-check tables, validation, and CSV export |
Related
- Full documentation — architecture, workflows, configuration
- Demo video — Forms, public URL, builder, and submissions
- Live demo —
demo@user.net/password - Spiggle Dynamic Fields Core — reusable field types for Eloquent models
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.