Form Builder
Form Builder adds form definitions, encrypted submissions, frontend rendering, validation, and submission status handling to Capell.
What Form Builder provides
Form Builder adds form definitions, encrypted submissions, frontend rendering, validation, and submission status handling to Capell.
It is built for contact forms, applications, enquiries, lead capture, and internal request workflows.
Editors can create structured forms while developers keep submission handling inside an auditable package boundary.
Sensitive submission data benefits from encryption and clear lifecycle handling.
Use it when forms need to be native to Capell rather than embedded from a disconnected tool.
Install on your Capell site in three steps.
Each extension ships as a standard Composer package. Purchases unlock account access immediately before you install.
-
01
Require the package
composer require capell-app/form-builder -
02
Register the extension
php artisan capell:extension:enable capell-app-form-builder -
03
Clear schema cache
php artisan capell:admin:clear-schemas-cache
Related extensions
Browse the packages that usually pair with Form Builder or buy the suite it belongs to.
No related extensions have been published for this package yet.
Growth Campaign Suite
Launch measurable campaigns in Capell with landing pages, form capture, SEO readiness, site search, and redirect recovery in one buyer path.
Media Workflow Suite
Manage richer content intake with Media Library, provider-backed Media AI actions, shared address records, tags, and native Capell forms.
Package README Install impact, package shape, common pitfalls, and maintenance notes. Open
Form Builder
FormBuilder adds form definitions, encrypted submissions, frontend Livewire rendering, conditional logic, multi-step forms, calculations, file upload rules, spam scoring, payment fields, and submission workflows to Capell.
At A Glance
- Package:
capell-app/form-builder - Namespace:
Capell\FormBuilder\ - Surfaces: Filament admin resource, frontend Livewire, database
- Service providers:
packages/form-builder/src/Providers/FormBuilderServiceProvider.php - Capell dependencies:
capell-app/admin,capell-app/core,capell-app/frontend
Why It Helps Your Capell Workflow
- Lets editors build and publish forms while the package owns encrypted submissions, validation, notifications, and status handling.
- Helps owners collect leads, enquiries, and operational requests without custom Livewire work for every form.
- Gives developers a predictable form/submission model that can connect to Public Actions, Email Studio, and campaign workflows.
Best Used With
What It Adds
FormBuilder adds form definitions, encrypted submissions, frontend Livewire rendering, conditional logic, multi-step forms, calculations, file upload rules, spam scoring, payment fields, and submission workflows to Capell.
- Form and submission models.
- Admin submissions resource under the reports navigation group.
- Frontend Livewire form component.
- Actions for validation, conditional visibility, multi-step grouping, calculations, spam scoring, submission creation, archiving, read state, and spam marking.
- FormSubmitted event.
- Configurable submission storage, request metadata collection, file upload rules, payment field metadata, notifications, and replies.
Why It Matters
For developers: Keeps form schema, settings, submission payload, and metadata in data objects and casts so form handling remains typed across layers.
For teams: Lets editors collect responses from structured websites while keeping submission review inside the Capell admin workflow.
Built With
This package makes its Composer dependencies visible because they are part of the value proposition, not just plumbing. When an upstream package has a public repository, its linked preview card points readers back to the maintainers so their work gets proper credit.
Capell packages used here
Open-source packages used here
- No extra third-party Composer package beyond the Capell package stack is required here.
Screens And Workflow
Screenshots are generated from docs/screenshots.json during package deployment.
- FormBuilder admin index.
- Create/edit form schema screen.
- Submissions index.
- Frontend form output.
- Submission detail view.
Technical Shape
- FormBuilderServiceProvider registers the package.
- Config file: capell-form-builder.php.
- Migrations create form-builder and submissions.
- Models: Form and Submission.
- Livewire component: FormComponent.
- EncryptedDataCast protects stored submission data.
Code Map
| Area | Path | Purpose |
|---|---|---|
| Actions | packages/form-builder/src/Actions |
Domain operations. Test these directly where possible. |
| Data | packages/form-builder/src/Data |
Structured payloads, form state, view models, and integration data. |
| Enums | packages/form-builder/src/Enums |
Persisted states and Filament option values. |
| Models | packages/form-builder/src/Models |
Eloquent records owned by the package. |
| Livewire | packages/form-builder/src/Livewire |
Interactive frontend or admin components. |
| Providers | packages/form-builder/src/Providers |
Registration, extension hooks, routes, migrations, and resources. |
| Resources | packages/form-builder/resources |
Views, translations, assets, and package resources. |
| Config | packages/form-builder/config |
Package configuration and publishable config. |
| Database | packages/form-builder/database |
Migrations, seeders, and settings migrations. |
| Tests | packages/form-builder/tests |
Package-level Pest coverage. |
Runtime Surface
- Livewire:
FormComponent.
Data And Persistence
-
form-builder belongs to sites and stores handle, schema, settings, and active state.
-
submissions belongs to form-builder and sites and stores payload, meta, status, and submitted_at.
-
Submission payload and metadata are represented by data objects.
-
Deletion and retention rules should be verified against the host application policy.
-
Models:
Form,Submission. -
Migrations:
2026_05_10_190849_01_create_form-builder_table.php,2026_05_10_190849_02_create_submissions_table.php. -
Config:
packages/form-builder/config/capell-form-builder.php. -
Data objects live in
src/Data/; use them for payloads, form state, and view models.
Extension Points
- Events:
FormSubmitted. - Register Capell extension points, routes, migrations, settings, render hooks, and resources from service providers.
Install Impact
- Adds form-builder and submissions tables.
- Adds frontend Livewire form component.
- Adds config keys for storing submissions, IP address collection, user agent collection, throttling, and spam scoring.
- No routes are visible in this package.
Install And Setup
- Install with
composer require capell-app/form-builderin the host Capell application. - Run migrations through the host application package install flow.
- In this repository, verify package changes with
vendor/bin/pest; do not usephp artisan.
Admin And Access
- Admin resource:
SubmissionResource. - Navigation: Form submissions under the reports group.
- Access is governed by
SubmissionPolicyand site-scoped submission queries.
Common Pitfalls
- Disable IP/user agent collection where privacy policy requires it.
- Run migrations before rendering form components.
- Validate field schema before accepting public submissions.
- Tune spam scoring thresholds and blocked keywords for the site’s risk profile before using automatic spam triage in production.
Docs
Testing
Run package tests from the repository root:
vendor/bin/pest packages/form-builder/tests --configuration=phpunit.xml
Maintenance Notes
- Treat public routes as untrusted input and keep validation, permission checks, and side effects inside actions or dedicated services.
- Put behaviour changes in
src/Actions/; UI classes, commands, and controllers should call actions instead of owning domain logic. - Use package
Dataclasses at boundaries instead of passing anonymous arrays between layers. - Use backed enums for persisted values and enum labels for Filament options.
Overview A shorter package overview for marketplace and account review. Open
FormBuilder
Status: Available, schema-owning · Kind: package · Tier: premium · Bundle: form-builder · Contexts: admin, frontend · Product group: Capell FormBuilder
This page is the consolidated implementation overview for the FormBuilder package. It is extracted from the package README, service providers, migrations, config files, routes, resources, models, actions, and the shared Capell ERD notes where available.
What This Package Adds
FormBuilder adds form definitions, encrypted submissions, frontend Livewire rendering, conditional logic, multi-step forms, calculations, file upload rules, spam scoring, payment fields, and submission workflows to Capell.
- Form and submission models.
- Frontend Livewire form component.
- Actions for validation, conditional visibility, multi-step grouping, calculations, spam scoring, submission creation, archiving, read state, and spam marking.
- FormSubmitted event.
- Configurable submission storage, request metadata collection, file upload rules, payment field metadata, notifications, and replies.
Developer Notes
Keeps form schema, settings, submission payload, and metadata in data objects and casts so form handling remains typed across layers.
- FormBuilderServiceProvider registers the package.
- Config file: capell-form-builder.php.
- Migrations create form-builder and submissions.
- Models: Form and Submission.
- Livewire component: FormComponent.
- EncryptedDataCast protects stored submission data.
Operational Notes
Lets editors collect responses from structured websites while keeping submission review inside the Capell admin workflow.
- Adds form-builder and submissions tables.
- Adds frontend Livewire form component.
- Adds config keys for storing submissions, IP address collection, user agent collection, throttling, and spam scoring.
- No routes are visible in this package.
Data And Retention
- form-builder belongs to sites and stores handle, schema, settings, and active state.
- submissions belongs to form-builder and sites and stores payload, meta, status, and submitted_at.
- Submission payload and metadata are represented by data objects.
- Deletion and retention rules should be verified against the host application policy.
Screenshot Plan
- FormBuilder admin index.
- Create/edit form schema screen.
- Submissions index.
- Frontend form output.
- Submission detail view.
Screenshots
The existing screenshot captures are retained as runner evidence only. They currently show Form Mappings rather than Form Builder schema, submissions, detail, or frontend output, so marketplace media keeps only the extension card until recapture.
The frontend and submission detail screenshots need seeded form definitions and submissions before they can represent the package accurately. Do not publish blank frontend captures for those states.
Pitfalls
- Disable IP/user agent collection where privacy policy requires it.
- Run migrations before rendering form components.
- Validate field schema before accepting public submissions.
- Tune spam scoring thresholds and blocked keywords for the site’s risk profile before using automatic spam triage in production.
Verification
- Run
vendor/bin/pest packages/form-builder/testswhen package tests exist. - Run the relevant host-app migration or package install flow in a disposable database.
- Open the listed admin or frontend surface and compare it with the screenshot plan.
Package Manifest
- Composer name:
capell-app/form-builder - Product group: Capell FormBuilder
- Kind: package
- Tier: premium
- Bundle: form-builder
- Contexts:
admin,frontend - Requires:
capell-app/core,capell-app/admin,capell-app/frontend - Optional dependencies: None listed.
Admin Surfaces
- Resource:
SubmissionResource. - Page:
ListSubmissions. - Navigation: Form submissions under the reports group.
- Table actions include read, archive, spam, reply, and payload review states.
Commands
- None proven in this package directory.
Routes And Config
- Config: packages/form-builder/config/capell-form-builder.php
Permissions And Gates
- None proven in this package directory.
Migrations
- Migration: create_form-builder_table.php
- Migration: create_submissions_table.php
ERD Excerpt
erDiagram
SITES ||--o{ FORMS : owns
FORMS ||--o{ SUBMISSIONS : receives
SITES ||--o{ SUBMISSIONS : scopes
FORMS {
bigint id PK
bigint site_id FK
string handle
json schema
json settings
boolean is_active
}
SUBMISSIONS {
bigint id PK
bigint form_id FK
bigint site_id FK
longtext payload
longtext meta
string status
timestamp submitted_at
}
Screenshot Automation
Deployment should read screenshots.json, install the package with demo data, resolve each admin surface or frontend URL, and write images to packages/form-builder/docs/screenshots.
- FormBuilder admin index.
- Create/edit form schema screen.
- Submissions index.
- Frontend form output.
- Submission detail view.
Downloads and releases
- Total downloads
- 0
- Last downloaded
- No downloads yet
Version history
1 release-
v1.0.0May 3, 2026
No approved reviews yet. Reviews from eligible customers appear here after marketplace review.
Payment and licences
How marketplace purchases work
Capell keeps payment, account ownership, package receipts, and install access separate so a failed step can be recovered without guessing where the licence lives.
Who takes the payment?
Paid marketplace checkouts are sent to Stripe. Capell does not collect card details inside your CMS; Stripe confirms the payment and Capell activates the matching marketplace licence for the Capell account that approved the install.
How is the licence attached?
The licence is created against the signed-in Capell account first. When the hosted install flow returns to your CMS, Capell binds that licence to the requesting site and sends back the install authorization needed to continue.
Where does Anystack fit?
Anystack can be the package commerce and distribution surface for marketplace products. Capell still records the account licence and installed receipt, then relays later Anystack product or licence events only to connected sites that already have the package installed.
What happens if checkout is cancelled or expires?
No licence is created until Stripe confirms payment. If checkout is cancelled, start it again from the same review screen. If the quote expires, return to the marketplace in your CMS and start a fresh install flow so pricing and package metadata are recalculated.
What should I do if something looks wrong?
Keep the support reference shown on the review screen or receipt, then contact support before retrying with a different account. For missing licences, failed returns, or Anystack receipt mismatches, Capell can reconcile the Stripe session, Capell account, package receipt, and connected site from that reference.