Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Formmaker Laravel Package

yab/formmaker

Yab/Formmaker is a Laravel form builder for creating, rendering, and managing dynamic forms with reusable components, validation, and Blade-friendly templates. Ideal for admin panels and rapid CRUD form development.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Unchanged. yab/formmaker (GrafiteInc/Forms) remains a server-rendered, Blade-centric form builder: form definitions persisted in the package's own migrations, rendered through a FormMaker facade and directives, posted back through standard Laravel request/validation cycles. Still plausible for a monolithic Laravel app with back-office or internal data-entry screens; still a poor fit for API-first services, SPA/headless front ends, multi-tenant products where form schema is a customer-facing surface, or anything needing schema portability. The package owns both schema and presentation, so its data model is load-bearing from day one. The one architectural signal in v6.0.0 is a deliberate move toward Bootstrap 5, which couples the package more explicitly to a specific CSS framework's markup conventions — a narrowing, not a widening, of fit.

Integration feasibility. Mechanically unchanged: Composer require, provider auto-discovery, publish config and migrations, artisan-generate form classes. The dependency story is now the open question rather than the settled one. A major version bump from a package that had not released since February 2022 implies someone reworked the codebase — plausibly a Laravel/PHP version floor raise, plausibly the replacement of laravelcollective/html with native Blade or a maintained alternative, plausibly new front-end scaffolding for Bootstrap 5. Any of those would materially improve the feasibility case; none is confirmed by a one-line release note. Do not infer a Laravel 11/12 or PHP 8.3 support claim from the version number. Read the composer.json and the v5→v6 diff before the spike, and treat compatibility as unproven until exercised.

Technical risk. Ranked:

Risk Severity Notes
License NOASSERTION High Unchanged. v6.0.0 says nothing about licensing. Commercial use, redistribution, or embedding in a shipped product remains a legal unknown until the LICENSE file is read and, ideally, clarified in writing. A release is not a license grant.
Thin release notes / unknown scope High "Bootstrap 5 compatibility and more" is a marketing line, not a changelog. A major version bump with undisclosed breaking changes and an unreviewed "and more" tail is exactly the shape of upgrade that bites. Diff the tags.
Bus factor 1 / single-maintainer High One release after a multi-year gap is a pulse, not a heartbeat. No commercial backing, no announced support policy, no release cadence. The abandonment risk is reduced but not retired.
Front-end coupling (Bootstrap 5) Medium-High New. If v6 emits Bootstrap 5 markup (data-bs-*, BS5 form/validation classes), any host app on Bootstrap 3/4, Tailwind, or a custom design system now needs a CSS shim or view overrides. This is new integration work that did not exist in the prior assessment.
Framework drift Medium-High Downgraded from High on the assumption that v6 targets newer Laravel/PHP. Reverts to High the moment that assumption fails the spike.
Transitive dependency rot Medium Possibly improved if the HTML-helper dependency was dropped in this major; verify rather than assume.
Schema lock-in Medium Unchanged. Definitions live in package tables; exit is a data migration. A major version bump raises the odds of a definition-format migration on upgrade — check the migration set.
"Magic" opacity Medium Unchanged. Facades, dynamic field resolution, convention-heavy rendering. Fast to demo, slow to debug.
Input-handling security Medium Unchanged. Definition-authored labels, options, and HTML fragments are an XSS and mass-assignment surface. New Bootstrap 5 markup does not fix escaping; verify the escaping model did not regress in the rewrite.

Key questions to answer before committing.

  1. What Laravel and PHP versions does v6.0.0 floor and ceiling at, and does it install cleanly on our target with a satisfied composer why-not?
  2. What is actually in the v5→v6 diff — schema migrations, definition-format changes, view/markup rewrite, dependency swaps?
  3. Was laravelcollective/html (or equivalent) dropped, and what is the resolved transitive tree now?
  4. Does v6 require Bootstrap 5, or support BS4/BS5 side by side? Can markup be overridden at the view layer?
  5. Is this an isolated maintainer push or the start of a cadence? Any stated support policy or roadmap?
  6. Unchanged and still blocking: what does the LICENSE file say, and will the maintainer confirm it in writing?
  7. Unchanged: three internal forms or our primary customer intake surface?
  8. Unchanged: who is the named internal owner if we adopt it?

Recommendation implied by the above: unchanged in shape, marginally better in outlook. Still viable only as a short-term accelerator for a small, internal, non-regulated form surface behind an adapter layer; still not a strategic foundation. The release removes "abandoned with certainty" from the risk column and replaces it with "single-maintainer with unverified intent," which is an improvement in kind but not in the decision.

Integration Approach

Stack fit. Revised. The prior assumption — Laravel 8/9, PHP 8.0/8.1, Blade, Bootstrap-flavored, session validation — now needs to be read against a package that has shipped a Bootstrap 5 release. Two viable postures: (a) our front end is Bootstrap 5, in which case v6.0.0 is a genuine alignment win and the coupling is benign; (b) our front end is anything else, in which case the package's view layer is now the integration cost. Establish which one we are before the spike, because it determines the size of the view-override work.

Migration path. Unchanged in principle: adopt greenfield in a new admin area or internal ops tool rather than retrofitting an existing flow; do not let package-generated views leak into shared layouts; introduce a thin internal adapter (FormRenderer interface plus our own Blade components) that delegates to the package today and can be reimplemented in-house tomorrow. That adapter is the exit strategy and it now also absorbs Bootstrap-version churn, which is a second reason to have it. If we are mid-adoption on v5.x, do not upgrade in place — re-spike v6 on a branch, because a major bump from a dormant package is not a patch.

Compatibility work. Rebuild the matrix for v6 specifically (package version × Laravel × PHP × Bootstrap × DB) and repin composer.lock. Read the tag diff, not the release note. Confirm whether v6 ships definition-format or table migrations and, if so, whether they are reversible and whether existing definitions survive. Confirm the asset pipeline: BS5-era JS scaffolding may assume a different bootstrap bundle than ours. If patching is needed, fork to our VCS immediately — the same rule as before, and it matters more now that there is an upstream release to rebase against.

Sequencing.

  1. Legal gate. Unmoved and still first. Read LICENSE, classify, get written clarification if ambiguous. v6.0.0 does not clear this.
  2. Diff review (half a day). Tag-compare v5→v6, read composer.json, the migration set, and the view changes. Decide whether "and more" contains anything disqualifying before spending spike time.
  3. Front-end alignment check. Bootstrap 5 in or out. If out, scope the override work or stop.
  4. Environment spike (1–2 days). Throwaway branch, current framework version, one representative form end-to-end including validation, file upload if in scope, and a submission round-trip — plus a v5→v6 upgrade rehearsal if we already ship v5.
  5. Dependency audit. composer why, abandoned-package scan, CVE scan on the resolved tree. Confirm whether the HTML-helper dependency is gone.
  6. Fork and pin. If the spike passes, fork, tag v6.x, record the patch and rebase policy.
  7. Internal pilot. Two or three real forms with real users, instrumented.
  8. Hardening. Output escaping on definition-authored content, authorization on who may define/edit forms, audit logging on submissions — verify none of this regressed in the rewrite.
  9. Decide. Expand only if the pilot shows low defect volume and no upgrade friction; otherwise execute the adapter swap while the surface is still small.

Operational Impact

Maintenance. We still become the maintainer, but the budget line changes shape. Previously it was a straight dependency-patching tail on a frozen package; now there is an upstream to rebase against and a major version to absorb. Budget the standing few-days-per-quarter allocation as before, and add a one-off Bootstrap 5 markup migration cost plus a definition-format migration cost if v6 changed either. Watch whether a v6.0.1 follows. A single major release with no point release inside a quarter is a signal that the repo is still effectively dormant.

Support. Effectively none, with a marginally better prior. One release does not constitute a support path. Before raising this from "assume zero response," file one low-stakes issue against v6 and see whether it is answered — that is a cheap, concrete test of maintainer engagement. Until then, escalation remains internal only: acceptable for internal tooling, unacceptable for anything customer-facing with an SLA.

Scaling. Unchanged. Definitions are re-read per request; cache compiled definitions aggressively — config-scale workload, not throughput. Not designed for multi-tenant isolation or high-volume submission writes; put our own submission model and queue in front of it if submission volume is a business metric. File uploads need explicit storage and virus-scan wiring. New note: BS5 markup may carry different client-side validation and JS behavior, so confirm submission round-trips and error rendering under load and on slow connections rather than trusting the demo.

Failure modes to pre-plan.

  • Silent breakage on framework upgrade — unchanged, and now compounded: a package mid-rewrite is more likely to have regressed something quietly than one that has been frozen. Mitigation: golden-output tests on our forms, run before every framework bump and after every package bump.
  • Major-version upgrade with thin notes — new. v6.0.0's "and more" is an unlisted change surface. Mitigation: diff-based upgrade review, a pinned fork, and a written rollback plan for the definition migration.
  • Transitive dependency abandonment — possibly mitigated if the HTML helper layer was dropped; verify, and keep the fork-or-replace-at-the-adapter fallback.
  • Front-end system mismatch — new. BS5-only markup against a non-BS5 host app produces subtly wrong rendering that passes tests and looks broken to users. Mitigation: explicit view overrides at the adapter boundary plus visual regression coverage on our forms.
  • Unpatchable security finding in the package or its tree. Mitigation: accepted-risk register signed off before launch, plus a documented manual-patch runbook.
  • Data lock-in during exit — definitions stranded in package tables, now with a version-format twist. Mitigation: a written export script from day one, tested once, and re-tested after the v6 migration.
  • Definition-authored XSS — a staff member pastes script into a field label. Mitigation: sanitize at render, restrict who can author definitions. Re-verify in v6; a view-layer rewrite is where escaping regressions hide.

Ramp-up. Unchanged and still the inverse of the demo experience: a mid-level Laravel developer produces a working form in an afternoon, and the second developer spends longer than expected tracing why a field rendered a particular way. Add a Bootstrap 5 section to the internal write-up, since view-layer conventions are now version-specific and will differ between any v5 code we find in the wild and v6 code we write. With no external documentation community, onboarding depends entirely on internal notes — budget the write-up as part of the pilot.

Bottom line for the roadmap. Marginally improved, not re-decided. The package buys perhaps one to two weeks of build time against a thin internal form module, and the maintenance tail is now a live upgrade cadence rather than a frozen one — better, but only if the maintainer keeps shipping. The license question is untouched and still blocking. Approve only for bounded internal surfaces, only after the legal gate, the v5→v6 diff review, the front-end alignment check, and the compatibility spike, and only with the adapter layer and a named owner in place.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin