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

Tomato Forms Laravel Package

tomatophp/tomato-forms

Tomato Forms is a form builder for TomatoPHP and Filament that lets you create dynamic, database-backed forms and manage submissions from your admin panel, with reusable field components so you can add custom forms to any Laravel app without boilerplate.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Scoping "let admins define their own forms." Any roadmap item that sounds like custom profile fields, onboarding questionnaires, intake/KYC flows, internal surveys, or per-tenant custom attributes is the same underlying shape: form → fields → answers stored against the user record instead of new columns. This package is a working reference implementation of that data model, which lets you size the work in days and argue from a concrete artifact rather than a whiteboard.
  • Build vs. buy vs. fork, settled on evidence. The surface is small — two Filament resources, a few migrations, likely one controller — and MIT-licensed. That collapses the usual three-way debate. A form SaaS is hard to justify for a bounded internal need; a straight dependency is hard to justify at zero stars and zero dependents; fork-and-own is the credible middle path, and this repo is the thing that makes that case in the room.
  • Keeping schema churn off the core user model. Answers land in user meta rather than typed columns, so product can add, retire, reword, or A/B question sets without a migration or a release. Treat that as a design principle independent of whether you adopt this package — it's the real product insight, and it's what makes per-plan and per-region variation cheap.
  • Buying signal on the "no-code admin" theme cheaply. If ops users authoring their own data capture is on the roadmap, a one-to-two-day spike here returns real evidence on authoring UX, permissioning, and the definition-vs-submission permission split before you commit a quarter of engineering.
  • Deciding where not to spend engineering. Form builders are commodity. This package does not meaningfully cover conditional branching, multi-step flows, versioned schemas, typed exports, or integrations — those are the differentiators, and that is where the team's time belongs.
  • Forcing the storage decision into writing. Whether user meta is the system of record or a staging area is a product call with long-tail consequences — reporting, billing, compliance, deletion rights, migration cost. Make it explicitly now, before responses accumulate and the cost of changing your mind goes up.

When to Consider This Package

Consider it when:

  • You are already inside the TomatoPHP / Filament admin ecosystem and want a drop-in rather than an integration project.
  • The forms are internal, admin-authored, low-traffic, and non-critical: back-office intake, internal surveys, ops data capture, HR requests.
  • You are prepared to vendor and fork under MIT — treating upstream as a starting point and accepting ownership of maintenance, patching, and Filament-major compatibility.
  • You need a prototype in days to validate a workflow before committing to an in-house build; "is this feature worth a quarter?" gets answered for the price of a spike.
  • Your team has Laravel/PHP capacity to audit the migrations, the validation layer, and authorization on both form definition and form submission.

Look elsewhere when:

  • The forms are customer-facing or touch sensitive data. Runtime-defined schema plus key/value meta needs a real security review: mass assignment, authorization over which fields a given user may submit, stored XSS in admin-authored labels and options, file uploads, PII retention and deletion. None of that is guaranteed here.
  • You need capabilities it does not advertise — conditional logic, multi-step flows, schema versioning, typed reporting/exports, or third-party integrations. Building those on top costs more than starting fresh.
  • You need durable vendor support or a compatibility commitment. Last release was May 2024, it predates Filament v4, and there are zero dependents — assume the package is dormant and that maintenance ownership transfers to you in full.
  • Submissions are system-of-record data for billing, compliance, or audit. Key/value meta with no schema versioning means reports silently drift after any field rename or retype; that's an unacceptable failure mode for regulated or revenue-critical records.
  • Your team has no Filament/PHP depth. The realistic endgame is owning this code; adopting it without the capacity to read and patch it is borrowing technical debt at a high rate.

How to Pitch It (Stakeholders)

To executives: This is a small, MIT-licensed Laravel package that gives us a working model for letting admins define their own forms — profile fields, intake questionnaires, internal surveys — without database migrations every time a question changes. The strategic value is not the code; it's that we can price the "configurable data capture" roadmap item from a real artifact instead of an estimate, and run a two-day spike to decide whether that theme deserves a quarter of engineering. The honest caveat: it's a single-maintainer project with no dependents and no release since May 2024, so we would be adopting it as a starting point we own, not a supported dependency. Recommended posture is internal-only, off the critical path, and never in front of customers or sensitive data until a security review clears it.

To engineering: Treat this as a fork candidate, not a composer require. The surface is tiny — a couple of Filament resources and a handful of migrations — so the realistic endgame is vendoring under MIT and owning the maintenance. Before any integration code: confirm the Filament major constraint matches ours, read the migrations as the API, and audit the submit path for whether it writes unprefixed keys into a shared user-meta table (silent data-loss bug, highest-severity item here). Plan a thin repository seam between our app and the package's tables so the authoring UI survives a storage change, re-validate submissions server-side rather than trusting stored validation config, namespace every meta key, and assume no cascade cleanup when a form or field is deleted. First milestone is a five-field internal intake form rendered in Blade for two users — half a day, and it answers every open question about render path, meta shape, and whether we're forking.

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