pedropardoso/startup-kit-notifications

Startup Kit — Notifications module: multi-channel notification delivery

Maintainers

Package info

github.com/PedroPCardoso/startup-kit-notifications

pkg:composer/pedropardoso/startup-kit-notifications

Transparency log

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.3.0 2026-07-06 13:55 UTC

This package is not auto-updated.

Last update: 2026-08-18 14:33:38 UTC


README

PHP Laravel License

Multi-channel notification delivery domain module.

Part of Startup Kit, a modular backend for SaaS products built on PHP 8.4 / Laravel 12 with DDD, CQRS and ports & adapters.

Architecture

src/Notifications
├── Domain          # Notification aggregate, NotificationId, NotificationStatus, NotificationSent event
├── Application     # SendNotification command, GetNotificationById / ListNotifications queries + handlers
├── Contracts       # NotificationChannel and NotificationRepository ports
├── Http            # Controller, FormRequest, API Resource
└── Infrastructure  # Channels + persistence adapters: Eloquent, Postgres, MySQL, Mongo, InMemory

Highlights

  • Channel-agnostic — the NotificationChannel port keeps the domain independent of providers; SendGrid, Twilio (SMS) and Telegram are suggested integrations, with a NullNotificationChannel for testing
  • CQRS — commands and queries dispatched through the core buses (logging, tracing and transactions come for free)
  • Domain eventsNotificationSent published via the core event bus with transactional outbox
  • Swappable persistence — Postgres, MySQL, Mongo, Eloquent or in-memory, selected by config

Install

composer require pedropardoso/startup-kit-notifications

Not yet on Packagist — add the repo as a VCS repository in your composer.json first:

{ "repositories": [{ "type": "vcs", "url": "https://github.com/PedroPCardoso/startup-kit-notifications" }] }

Requires startup-kit-core. The service provider is auto-discovered by Laravel; configuration lives in config/startup-kit-notifications.php and migrations ship with the package.

Testing

composer install
vendor/bin/phpunit

Unit and integration tests run on Orchestra Testbench. Repository adapters share a contract test case, so every persistence backend is verified against the same behaviour.

Startup Kit modules

Module Description
startup-kit-core Primitives, contracts and cross-cutting infrastructure
startup-kit-users User registration & management
startup-kit-payments Payments with multi-gateway support (Stripe, Mercado Pago)
startup-kit-orders Orders & order lines
startup-kit-subscriptions Recurring subscriptions
startup-kit-notifications Multi-channel notifications (SendGrid, Twilio, Telegram)

License

MIT