nuewire / newsletter
Subscriber and queued newsletter broadcast management for the Nuewire Laravel platform.
1.0.0
2026-07-29 13:07 UTC
Requires
- php: ^8.2
- illuminate/auth: ^11.0|^12.0|^13.0
- illuminate/bus: ^11.0|^12.0|^13.0
- illuminate/cache: ^11.0|^12.0|^13.0
- illuminate/console: ^11.0|^12.0|^13.0
- illuminate/contracts: ^11.0|^12.0|^13.0
- illuminate/database: ^11.0|^12.0|^13.0
- illuminate/http: ^11.0|^12.0|^13.0
- illuminate/mail: ^11.0|^12.0|^13.0
- illuminate/pagination: ^11.0|^12.0|^13.0
- illuminate/queue: ^11.0|^12.0|^13.0
- illuminate/routing: ^11.0|^12.0|^13.0
- illuminate/support: ^11.0|^12.0|^13.0
- illuminate/translation: ^11.0|^12.0|^13.0
- illuminate/validation: ^11.0|^12.0|^13.0
- illuminate/view: ^11.0|^12.0|^13.0
- league/commonmark: ^2.5
- livewire/livewire: ^3.6|^4.0.3
- nuewire/support: ^1.0
Requires (Dev)
- nuewire/platform: ^2.1
- orchestra/testbench: ^9.0|^10.0|^11.0
- phpunit/phpunit: ^11.0|^12.0
Suggests
- laravel/horizon: Recommended for production queue monitoring.
- nuewire/acl: Adds granular newsletter permissions.
- nuewire/logs: Records optional audit trails for subscriber and broadcast changes.
- nuewire/mail: Provides runtime mail transport configuration.
- nuewire/platform: Adds Newsletter under Plugin and dashboard widgets; 2.1.3+ enables nested admin URLs.
README
Subscriber lifecycle and queued newsletter broadcasts for the Nuewire Laravel platform.
Features
- Plugin → Newsletter → Subscribers.
- Plugin → Newsletter → Email Broadcasts.
- Active, pending, and unsubscribed subscriber lifecycle.
- Optional double opt-in with signed confirmation links and mandatory reconfirmation after unsubscribe by default.
- Draft, schedule, queue, delivery ledger, retry, and campaign progress.
- Safe Markdown email content, preheader, preview, and test email.
- Visible unsubscribe link plus one-click
List-Unsubscribeheaders. - Rate-limited queue jobs, bounded retry windows, and idempotent recipient snapshots.
- ACL permissions, optional audit trails, and dashboard widgets.
Install
composer require nuewire/newsletter php artisan nuewire:newsletter:install --migrate php artisan optimize:clear
When ACL is installed:
php artisan nuewire:acl:sync php artisan permission:cache-reset
Production requires a queue worker and Laravel scheduler:
php artisan queue:work --queue=newsletter,default php artisan schedule:work
Admin routes
With nuewire/platform 2.1.3 or newer:
/admin/plugin/newsletter/subscribers
/admin/plugin/newsletter/broadcasts
The previous flat URLs remain aliases and redirect to these canonical routes.
Public form
Default landing page:
/newsletter/subscribe
Or embed the form:
<livewire:nuewire-newsletter-subscribe />
Safe audience semantics
active: active subscribers only.pending: pending subscribers only; disabled by default.all: active + pending; never includes unsubscribed addresses.
Enable pending targets only for a legitimate confirmation or re-permission campaign:
NUEWIRE_NEWSLETTER_ALLOW_PENDING_TARGETS=true
Recommended production controls:
NUEWIRE_NEWSLETTER_RECONFIRM_AFTER_UNSUBSCRIBE=true NUEWIRE_NEWSLETTER_SEND_PER_MINUTE=120 NUEWIRE_NEWSLETTER_DELIVERY_RETRY_HOURS=24
See docs/PANDUAN.md for operations, queue setup, and media-company practices.