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

Plunk Laravel Laravel Package

sohaibilyas/plunk-laravel

A Laravel integration for Plunk, the open-source email platform, making it easy to send transactional and marketing email through Plunk's API from your application. Includes a simple mail transport, configuration, and Laravel-friendly helpers for quick setup.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for transactional email plumbing: this package already owns the undifferentiated heavy lifting — automatic mailer registration, queued-send retry idempotency, and custom header serialization — so the team can avoid maintaining a bespoke mail transport. v3.0.2 is a drop-in patch that reinforces that decision rather than changing it.
  • Launch readiness for account-recovery and notification flows: the fix corrects an invalid API payload sent whenever a message has no custom headers, which explicitly includes Laravel's stock password reset notification. Before this patch, a core, high-visibility user journey could fail at the provider with a 4xx on payload validation. That is a customer-facing reliability risk, not a cosmetic bug.
  • Risk posture on a small dependency surface: the change is scoped to serialization (empty headers omitted instead of emitted as a JSON array; populated headers still objects). Mailer registration and queue retry idempotency are explicitly unchanged, so there is no migration work, no config drift, and no behavior change for existing senders.
  • Roadmap sequencing: treat this as a required patch bump for any environment sending transactional mail, and prioritize it above net-new feature work since the blast radius includes password resets.
  • Use cases it unblocks: password reset and email verification, order/account notifications, and any flow where custom headers (List-Unsubscribe, tags, tracking) are set on some messages but not others — the mixed-header case is exactly where the old serialization broke.

When to Consider This Package

Adopt when:

  • You are on Laravel 12 or 13 (both are covered by CI for this release) and sending transactional mail through an API-based provider.
  • You want the mailer wired up automatically rather than hand-registering a transport in service providers.
  • You send queued mail and care about not double-sending when a job retries — the idempotency guarantee is the differentiating feature here.
  • You occasionally attach custom headers to messages but not uniformly across every notification.

Look elsewhere when:

  • You are pinned to an older Laravel major without a supported branch.
  • You need provider capabilities beyond send (inbound parsing, event webhooks, advanced suppression management) that this package does not surface.
  • You require a vendor-supported first-party SDK with a formal support contract rather than a community package.
  • Your volume or compliance profile demands a direct integration you fully control, in which case the fix above is a reminder to test header-less payloads in your own transport.

How to Pitch It (Stakeholders)

To executives: a small, low-risk patch to the library that sends our transactional email. It fixes a defect where emails without custom headers — including standard password reset emails — were rejected by the email provider. The change is confined to how headers are formatted, ships with regression tests, and passed CI on both supported Laravel versions. No migration, no downtime, no cost.

To engineering: v3.0.2 omits empty headers from the request payload instead of serializing them as a JSON array; populated headers still serialize as objects. Automatic mailer registration and queue retry idempotency are untouched. Validation is 47 package tests plus new serialized-request regression coverage, with Laravel 12 and 13 CI green. Recommend bumping the dependency constraint and confirming the password reset path in staging before rollout.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource