noerd/notifications
Laravel package for adding notification features to PHP applications. It builds on Laravel's notification system to help you send, store, and manage user alerts, keeping notification logic organized and easy to integrate into existing models and workflows.
noerd core, this package is the reference implementation of the module contract. Adopting it avoids hand-rolling publish/install/update plumbing per module — a recurring cost multiplied by every module shipped.handle() and into declared surfaces (getConfigFiles(), publishModuleExtras(), ensureModuleSetup()). This is directly a support-cost decision: what a module publishes becomes inspectable and reviewable rather than buried in imperative code, which shortens code review and incident triage for each module release.ensureModuleSetup() now runs on install and every update, so live customers receive setup entries they never got from earlier versions. This converts a class of "missing config after upgrade" support tickets into a self-healing path — but only if ensureModuleSetup() is written idempotently, which becomes a standing engineering standard the PM should enforce in module definition-of-done.noerd/noerd to ^0.16.35 is a deliberate correctness fix (the prior open range could resolve to a core the module cannot run on), but it also means core and module releases are now coupled. Roadmap planning must treat core upgrades as a gating dependency for module upgrades, not an independent track.Adopt when:
noerd/noerd ^0.16.35 or newer. Older cores do not implement this contract; the package will not run there.Look elsewhere or defer when:
To executives: This release makes our add-on modules declare what they install instead of hard-coding it, and it repairs existing customer installations automatically on update. The practical effect is fewer upgrade-related support tickets, lower per-module maintenance cost as the module portfolio grows, and a more auditable picture of what any module changes in a customer environment. The tradeoff is that core and module upgrades must now ship together — a scheduling constraint, not a cost increase.
To engineering: v0.1.2 aligns us with the noerd 0.16.35 declarative module contract. getConfigFiles(), publishModuleExtras(), and ensureModuleSetup() replace imperative logic in handle(), and setup runs on install and every update — so treat ensureModuleSetup() as idempotent by requirement, not convention. The core requirement is tightened to ^0.16.35 because earlier cores lack the contract; do not attempt to relax it. Version is still 0.1.x, so expect further contract movement and keep module code thin against it.
How can I help you explore Laravel packages today?