Packstub.

Installation

composer require packstub/filament-form-builder
php artisan packstub-form-builder:install

The install command publishes the config file and the migration and offers to run it. Two tables are created: form_builder_forms and form_builder_submissions (rename them in tables before migrating).

Register the plugin on every panel that should manage forms:

use Packstub\FormBuilder\FormBuilderPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugin(
            FormBuilderPlugin::make()
                ->navigationGroup('Content'),
        );
}

Requirements

Plugin Filament Laravel PHP
1.x 4.x, 5.x 12.x, 13.x 8.3+

No other package is required. The CSV export, the email notification and the spam protection are built in.

Routes

The package registers, under routes.prefix (forms):

Route Name Purpose
POST /forms/{slug} packstub-form-builder.submit Submit (HTML redirect back, or JSON with Accept: application/json)
GET /forms/{slug}/definition packstub-form-builder.definition The form definition for headless clients
GET /forms/{slug} packstub-form-builder.show The hosted page (off with routes.page)

If your site has a catch-all route (a CMS), make sure forms is excluded from it, or change the prefix.