folliked/form-bundle
A Laravel form bundle for defining, validating and rendering forms from a single configuration. Build reusable fields, rules and layouts, then output consistent forms across your PHP application with less boilerplate and easier customization.
Architecture fit. The package is a Symfony bundle (SHFormBundle), not a Laravel package. Its form types (Captcha GD, Tinymce, Recaptcha, JQueryDate, JQueryAutocomplete, JQuerySlider, JQueryFile, JQueryImage) are built on the Symfony Form component and Twig rendering pipeline. Laravel's form story is Blade plus its own validation; there is no Symfony Forms runtime in a Laravel app. Adopting this in a Laravel codebase means either standing up Symfony Forms as a parallel abstraction or, more realistically, forking and rewriting the widgets. Neither is a clean architectural fit.
Integration feasibility. Effectively low. The bundle expects Symfony bundle registration, a Symfony service container, and Twig form themes. The widget set is also date-stamped: jQuery plugins and a GD-rendered image captcha are patterns from the jQuery/Symfony 2–3 era. A TPM should treat this as "reference code for widget ideas," not an installable dependency.
Technical risk. High, and mostly non-technical in origin:
Key questions. (1) Is the target application actually Symfony, or is "Laravel" in the brief a mislabel? (2) Which Recaptcha version and TinyMCE version are bundled? (3) What PHP/Symfony version constraints does composer.json declare? (4) Is there any fork or maintainer willing to take ownership? (5) Can each widget be replaced by a maintained equivalent at lower total cost?
Stack fit. Poor for Laravel. Each capability maps to a maintained, first-class alternative:
<input type="date">.Migration path. Do not install. If functionality is genuinely needed, run a short spike: extract the widget markup/JS patterns from the repo, then reimplement against the chosen maintained packages in Laravel/Blade. If the organization is on Symfony, evaluate the bundle in isolation behind a feature flag before any broader commitment.
Compatibility. Unknown PHP constraint (likely PHP 5.6/7.x era), Symfony 2/3 components, and jQuery plugin versions that conflict with modern front-end builds (Vite, Webpack). Expect friction with Laravel 8+ and modern asset pipelines. This is a compatibility dead end, not a bridge.
Sequencing. (1) Confirm framework reality. (2) If Laravel: reject and select per-widget replacements. (3) If Symfony: pin in a sandbox, run dependency audit (composer audit), test in staging. (4) Only then decide build-vs-fork. Never sequence this as a first-wave dependency.
Maintenance. Unmaintained upstream means the org owns it on day one. Composer/Vite dependency trees will drift; every PHP or front-end upgrade becomes a manual patch job. Budget for a fork or full replacement.
Support. No maintainer, no issue history of substance, zero dependents means no community knowledge base. Internal escalation only.
Scaling. Server-side GD captcha adds CPU and session-store load per form render and is a bot-magnet; jQuery plugins load extra assets per page and can block rendering if not bundled. File/image widgets need object storage and validation hardening that this bundle does not provide.
Failure modes. Session expiry breaks captcha validation; CDN or vendored asset 404s break widgets silently; Recaptcha key rotation and version deprecation will fail closed with no upstream fix; jQuery global conflicts with modern front-end frameworks; TinyMCE license/key changes break the editor. Each is a support ticket with no vendor path.
Ramp-up. Low surface area to learn (eight widgets) but high hidden cost: engineers must learn an abandoned Symfony-Forms pattern that has no bearing on the Laravel stack, and must then reimplement it anyway. Net ramp-up is negative — the team pays to learn code it will discard.
Recommendation. Reject as a dependency. Score 0.03, zero stars, zero dependents, and a 2020 terminal release place it firmly in "do not adopt." Treat the repository as a widget-requirements checklist, procure maintained equivalents per capability, and revisit only if a fork is explicitly funded with an owner and a support SLA.
How can I help you explore Laravel packages today?