misaf / vendra-newsletter
Tenant-aware newsletter publishing and subscriber management for Vendra
Package info
github.com/misaf/vendra-newsletter
Type:vendra-module
pkg:composer/misaf/vendra-newsletter
v1.6.0
2026-07-22 21:53 UTC
Requires
- php: ^8.3
- misaf/filament-jalali: ^5.1.4
- misaf/vendra-support: v1.6.0
- spatie/laravel-package-tools: ^1.93.1
Requires (Dev)
- fakerphp/faker: ^1.24.1
- larastan/larastan: ^3.10.0
- laravel/boost: ^2.4.12
- laravel/pint: ^1.29.3
- misaf/vendra-testing: v1.6.0
- mockery/mockery: ^1.6.12
- nunomaduro/collision: ^8.9.4
- orchestra/testbench: ^11.1
- pestphp/pest: ^4.7.5
- pestphp/pest-plugin-arch: ^4.0.2
- pestphp/pest-plugin-laravel: ^4.1
- pestphp/pest-plugin-profanity: ^4.2.1
- pestphp/pest-plugin-type-coverage: ^4.0.4
- phpstan/extension-installer: ^1.4.3
README
Tenant-aware newsletter management for Vendra applications.
Features
- Newsletters with a draft / scheduled / sent lifecycle
- Newsletter subscribers with subscribe and unsubscribe tracking
- Filament resources on the
adminpanel, grouped underMarketing
Requirements
- PHP 8.3+
- Laravel 13
- Filament 5
- Livewire 4
- Pest 4
- Tailwind CSS 4
misaf/vendra-support
Installation
composer require misaf/vendra-newsletter php artisan vendor:publish --tag=vendra-newsletter-migrations php artisan migrate
Optional translations publish:
php artisan vendor:publish --tag=vendra-newsletter-translations
The service provider and Filament plugin are auto-registered.
Usage
Create a newsletter:
use Misaf\VendraNewsletter\Enums\NewsletterStatusEnum; use Misaf\VendraNewsletter\Models\Newsletter; Newsletter::query()->create([ 'subject' => 'Monthly Update', 'content' => '<p>Hello world.</p>', 'status' => NewsletterStatusEnum::Draft, ]);
Add a subscriber (subscribed_at and the unsubscribe token are assigned automatically):
use Misaf\VendraNewsletter\Models\NewsletterSubscriber; NewsletterSubscriber::query()->create([ 'email' => 'reader@example.com', 'name' => 'Reader', ]);
Configuration
config/vendra-newsletter.php controls the Filament panels, navigation group, and the queue/batch settings used when sending a newsletter:
batch_chunk_size— subscribers per dispatched batch job (NEWSLETTER_BATCH_CHUNK_SIZE)queue.tries— retry attempts for send jobs (NEWSLETTER_QUEUE_TRIES)queue.timeout— batch fan-out job timeout (NEWSLETTER_QUEUE_TIMEOUT)queue.email_timeout— per-recipient delivery job timeout (NEWSLETTER_EMAIL_QUEUE_TIMEOUT)
Filament
Resources are available in the Newsletters cluster on the admin panel:
- Newsletters
- Subscribers
Testing
composer test
License
MIT. See LICENSE.