Installation
Requirements
- PHP: 8.3+
- Laravel: 11+ or 12+
- Filament: 4.x or 5.x
- Tailwind CSS: 4.0+
- Database: MySQL, PostgreSQL, or SQLite
Commercial License
FilaForms is a commercial package. Purchase a license at filaforms.app or contact hello@filaforms.app. After purchase you will receive a license key and access credentials via email.
Setup
Add Private Repository
Add the FilaForms Composer repository to your composer.json:
{
"repositories": [
{
"type": "composer",
"url": "https://composer.filaforms.app"
}
]
}
Install Package
composer require filaforms/core -W
When prompted for credentials:
- Username: your purchase email address
- Password: your license key
-W flag (--with-all-dependencies) lets Composer adjust packages already pinned in your composer.lock. It is required when adding FilaForms to an existing project whose lock file pins transitive dependencies (notably phpdocumentor/reflection-docblock) at versions that conflict with FilaForms' resolution. On a fresh project the flag is a no-op.Configure Multi-Tenancy (Optional)
Publish the config file and enable multi-tenancy:
php artisan vendor:publish --tag="filaforms-config"
'features' => FeatureConfigurator::configure()
->enable(FilaFormsFeature::MULTI_TENANCY)
See Configuration for full multi-tenancy setup.
Run Migrations
FilaForms migrations auto-load — just run:
php artisan migrate
This creates the forms, form_sections, form_fields, and form_submissions tables.
database/migrations/ (e.g. to customize column types for your DB)? Publish them first:php artisan vendor:publish --tag="filaforms-migrations"
php artisan migrate. Don't do both — you'll get "table already exists" errors. Pick one.Include CSS Assets
If you haven't set up a custom Filament theme, follow the Filament theme guide first.
Add the plugin views to your theme CSS file:
@source "../../../../vendor/filaforms/core/resources/views/**/*.blade.php";
Register the Plugin
Add FilaFormsPlugin to your Filament panel provider:
use FilaForms\Core\FilaFormsPlugin;
$panel
->plugins([
FilaFormsPlugin::make(),
]);
One-step install (alternative)
Prefer a single command? Run:
php artisan filaforms:install
This publishes the config file (so you can enable optional features like multi-tenancy), publishes the migrations to your database/migrations/ directory, and offers to run them. Use this in place of "Configure Multi-Tenancy" + "Run Migrations" above.
Verification
After installation, you should see Fila Forms in your Filament navigation menu. Click it to access the form builder and start creating forms.
Upgrading
When upgrading to a new FilaForms release, run:
composer update filaforms/core -W
php artisan migrate
php artisan filaforms:upgrade
filaforms:upgrade runs one-time data tasks like backfilling sequential submission numbers. It is idempotent — safe to run on every deploy.
Troubleshooting
"fixed to X.Y.Z (lock file version) by a partial update"
If composer require filaforms/core fails with an error mentioning a package "fixed to X.Y.Z (lock file version) by a partial update" — typically phpdocumentor/reflection-docblock 6.x or phpdocumentor/type-resolver 2.x — re-run with the -W flag:
composer require filaforms/core -W
Why this happens: Composer's default require performs a partial update, which cannot upgrade or downgrade packages already pinned in composer.lock. FilaForms transitively depends on phpdocumentor/reflection ^6.1 (via spatie/laravel-data), which in turn requires phpdocumentor/reflection-docblock ^5. If a prior install pinned docblock at 6.x, only --with-all-dependencies lets Composer resolve the chain.
This is a Composer behaviour, not a FilaForms bug — the -W flag is the canonical fix when adding any package with conflicting transitive deps to an existing project.
"Nothing to migrate" after composer require
If you're on FilaForms 3.0.0-beta.27 or earlier (3.x) or 2.x prior to the equivalent fix, migrations were registered for publishing but not auto-loaded. Workaround: publish the migrations first.
php artisan vendor:publish --tag="filaforms-migrations"
php artisan migrate
Upgrading to a newer FilaForms release fixes this — php artisan migrate will pick the migrations up automatically.
"no such table: forms" / "Table 'forms' doesn't exist"
You skipped (or didn't get a chance to run) php artisan migrate. Run it now:
php artisan migrate
If migrate reports "Nothing to migrate", see the entry above.
vendor:publish errors with "Can't locate path: …add_number_to_form_submissions_table.php.stub"
Old FilaForms releases (before the fix that consolidated the submission-number column into the main migration) registered a migration that no longer ships. Upgrade to the latest 3.x or 2.x release. The other migrations in the same publish batch are unaffected.