akyos/form-bundle
Configurable contact forms for Symfony (Contact Form 7 style): dynamic fields, submissions, export and Twig rendering. Depends on CoreBundle and CmsBundle. Requires PHP 8.4+ and Symfony 8.
akyos Core/CMS bundles, none of which transfer to Laravel. Any "buy" recommendation must be scoped to a Symfony service line, or the decision collapses to "build a Laravel-native form module."akyos bundles (core-bundle, cms-bundle) means adopting this couples your CMS and your form layer to a single small vendor. That is a concentration risk the PM must price in, not a footnote — it argues for treating this as an internal fork candidate rather than a strategic dependency.Request::get(), patched only in the admin builder-editing path. That is a concrete signal of upgrade tax per Symfony major, and it belongs in the total-cost-of-ownership line, not the engineering backlog alone.Consider it when all of the following hold:
akyos/core-bundle and akyos/cms-bundle. The form bundle is not standalone — adopting it into a clean Symfony app means adopting the CMS and core layers too, which is a much larger architectural commitment than "add a contact form."Look elsewhere when any of the following hold:
Request bag migration, Twig rendering, and bundle registration model are Symfony-specific. A Laravel team should evaluate filament/forms, laravel-filament form builders, or a thin custom Livewire/Blade implementation instead.For executives (one paragraph):
"We evaluated akyos/form-bundle as a shortcut for contact and intake forms. It works — it gives us configurable fields, stored submissions, export, and spam protection out of the box — but it is a Symfony-only component with a hard dependency on two sibling Akyos bundles, zero community adoption, and README-level documentation. My recommendation: approve it only for a Symfony service where we already run the Akyos CMS, where it saves roughly a sprint of form plumbing; do not adopt it for our Laravel work, and do not treat it as a strategic platform dependency. If we proceed, we wrap it behind an internal interface so it stays replaceable."
For engineering:
"It's a Symfony bundle (PHP 8.4+, Symfony ^8.0) that replicates Contact Form 7: dynamic fields, submission storage, export, Twig rendering, reCAPTCHA v3 via karser/karser-recaptcha3-bundle. It is not usable from Laravel — the internals are Symfony Form, Twig, bundle registration, and Symfony HTTP Foundation parameter bags; the 8.0.3 patch specifically moved Request::get() calls to query/request bags for admin builder editing. Costs: it drags in akyos/core-bundle and akyos/cms-bundle, so it is an ecosystem commitment, not a drop-in; reCAPTCHA arrives through a dev-stability third-party package, which is a supply-chain review item; and there is no redirect handling, so every submit handler must redirect explicitly to avoid resubmission. Recommendation: adopt behind a FormService interface, pin to a known-good patch (^8.0.3 minimum on Symfony 8), plan for a fork if the vendor stalls, and keep the option of Symfony's native Form component as the exit ramp."
For design/UX: "The bundle owns submission handling, validation messages, spam protection, and email delivery — it does not dictate the frontend. We control the Twig markup and can style freely, and translation overrides mean multi-language forms don't require new infrastructure. The constraint to design around: no multi-step flows, conditional branching, or file uploads without custom work. Please mock the form UI independently in Figma and confirm we're designing within a single-step form before the backend integrates."
How can I help you explore Laravel packages today?