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

Forms To Wherever Laravel Package

stokoe/forms-to-wherever

A Laravel package for sending form submissions wherever they need to go. Configure destinations such as email, database, webhooks, or custom handlers through a simple, flexible API, keeping form handling clean and consistent.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • This is a Statamic addon (Laravel package conventions: service provider, publishable config, likely a connector contract/abstract base class) that sits in the form-submission pipeline between Statamic's Forms addon and an arbitrary downstream destination.
  • The "base connector" framing means it is an extension framework, not an integration. Value is realized only if we implement concrete connectors on top of it. That is a build cost, not a procurement cost.
  • Architecturally sensible if we have 3+ heterogeneous destinations (CRM, warehouse webhook, internal event bus) and want one consistent submission/retry/error-handling seam. Poor fit for a single destination — Statamic's native email notification plus a small custom listener is likely less total code than adopting this and writing a connector.
  • Requires Statamic Pro with the Forms addon; adds a third-party layer to a PII-bearing pipeline, which raises the bar for code review and supply-chain scrutiny.

Integration feasibility

  • Composer-installable and additive; no schema or content migration implied. Rollback is composer remove plus config cleanup — low blast radius.
  • Feasibility hinges on unverified specifics: which Statamic/Laravel/PHP versions are declared, whether it hooks SubmissionCreated events or plugs into a connector contract, and whether submissions are still persisted by Statamic before dispatch (they must be, for auditability).
  • Zero dependents and zero stars means no field evidence that the hook point survives Statamic minor upgrades. Expect to validate against our pinned Statamic version in a sandbox before committing.

Technical risk

  • Bus factor of one, no visible release cadence, no ecosystem validation. Treat as an unmaintained internal dependency from day one; plan to vendor/fork.
  • Unknown test coverage and CI status — for code that decides whether customer submissions reach a CRM, silent-drop behavior is the dominant risk.
  • Unclear handling of the hard parts: queueing, retry/backoff, idempotency keys, dead-letter capture, per-connector failure isolation.
  • Versioning may be pre-1.0; API churn on the connector contract would cascade into every connector we write.

Key questions

  1. What Statamic, Laravel, and PHP version ranges are declared in composer.json, and is there CI against them?
  2. Does it wrap an existing Statamic extension point or monkey-patch the submission flow? What happens if Statamic changes it?
  3. Are dispatches synchronous or queued? Is there retry, backoff, and a failure sink?
  4. Is the connector contract documented, versioned, and covered by tests we can run?
  5. License terms, security disclosure process, and maintainer intent (is this a prelude to a paid suite of connectors)?
  6. Does it log or transmit submission payloads in ways that conflict with our data-residency/GDPR posture?

Integration Approach

Stack fit

  • Fits cleanly only if we are already on Laravel + Statamic Pro/Forms. Otherwise the dependency is inert.
  • Best-fit scenario: multi-destination fan-out with uniform observability. Worst-fit scenario: one destination, or a team without spare Laravel capacity to own a connector.

Migration path

  • Greenfield/additional path, not a migration: install, publish config, register one thin connector, enable per-form. Run in parallel with native Statamic email notifications for a defined bake period; compare delivery logs before cutting over.
  • If it disappoints, removal is trivial and leaves no data artifacts — a genuinely reversible pilot, which is the strongest argument for trying it.

Compatibility

  • Pin the Statamic major and Laravel range explicitly; add a Composer constraint ceiling and a CI job that fails on Statamic minor bumps until smoke tests pass.
  • Confirm the package does not conflict with our queue driver, cache driver, or Statamic's static caching/stache behavior.

Sequencing

  1. Sandbox spike: install, read the connector contract, wire a no-op connector that logs payloads. Timebox: 1 day.
  2. Confirm the hook fires for programmatic and front-end submissions, and that Statamic persists the submission first.
  3. Build one real connector to the lowest-risk, idempotent destination (internal webhook or log sink); add queueing and retry.
  4. Add failure observability: per-submission status, dead-letter table, alerting on dispatch failure.
  5. Pilot on a single low-traffic form; measure delivery success and latency for two weeks.
  6. Decide: adopt and fork (vendor into our namespace), or replace with a ~200-line in-house listener and drop the dependency.

Operational Impact

Maintenance

  • Assume we own it. Budget forking into a private package or vendoring the source with our patches; the fork is the deliverable, upstream is a starting point.
  • Track upstream commits manually; there is no dependents graph to surface breaking changes for us.

Support

  • GitHub issues only — no SLA, no security advisory channel, no commercial backing evidenced. Escalation path is "email the maintainer," which is not an operational plan.
  • Our on-call runbook must document the connector contract, because no one else will.

Scaling

  • Submission volume is bounded by Statamic traffic, so absolute scale is modest; the real constraint is downstream API rate limits and latency. Queue every dispatch; never block the user's form POST on a third-party call.
  • Add per-destination concurrency limits and a backlog alarm. Watch for the classic pattern where a slow CRM silently grows the queue until workers time out.

Failure modes

  • Silent drop — connector throws, submission appears successful to the user, data never lands. Mitigate with a persisted dispatch record and reconciliation job.
  • Duplicate delivery — no idempotency key means retries double-write to the CRM. Enforce a deterministic key derived from the submission ID.
  • Submission UX breakage — synchronous connector exceptions surfacing as 500s on the form endpoint.
  • PII leakage — verbose exception logging of full payloads.
  • Config-cache drift — connector classes referenced by string in config failing to resolve after deploy.
  • Abandonment — upstream goes stale, a Statamic upgrade breaks the contract, and we discover it in production.

Ramp-up

  • A mid-level Laravel developer can evaluate the contract and ship a first connector in 2–3 days; each additional destination is roughly half a day once the pattern, retry, and observability are established.
  • Add 1–2 days for the fork/vendor setup and CI pinning, which should be treated as mandatory rather than optional given the adoption signals.
  • Overall recommendation: conditional pilot, not a production dependency — run the 1-day spike, and make the adopt/fork/replace decision explicitly at the end of the pilot rather than by default.
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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums