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

Laravel Scheduled Notifications Laravel Package

thomasjohnkane/laravel-scheduled-notifications

thomasjohnkane/laravel-scheduled-notifications lets you schedule Laravel notifications for later delivery with a simple, database-backed API. Delay sends, set recurring schedules, cancel or reschedule pending alerts, and manage queued user notifications from one place.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit Snooze is a thin, in-process scheduling layer for Laravel notifications: it persists "remind me later" records in a snoozes table and relies on the framework's own scheduler, queue, and notification pipeline to deliver them. That fits well with codebases that already standardize on Laravel notifications for user-facing messaging — it adds a small Eloquent-backed data model and one scheduled entry rather than a new runtime dependency, external service, or broker. It does not fit teams without a reliable scheduler/queue topology (e.g. serverless or shared hosting with traffic-driven cron), since delivery correctness is delegated entirely to host operations.

Integration feasibility Low-to-moderate effort and fully reversible: composer require, publish config/migrations, run migration, add the trait to the models that need reminders, and register the package's run command in Kernel::schedule. No data model changes to existing tables, no API surface changes to consumer code. The primary integration work is operational (guaranteeing the scheduler runs and the queue drains) rather than code.

Technical risk 2.9.1 is a single-change release: it adds support for Laravel 13. Risk is low but not zero, and three things need confirmation: (1) whether supporting Laravel 13 raised the minimum Laravel/PHP constraint and silently dropped frameworks we currently run — a patch-level release that narrows supported ranges would be a de facto breaking change for consumers; (2) whether the Laravel 13 compatibility path has meaningful test coverage in CI, since a single external contribution is the only stated evidence. A "feat" shipped on a patch version (2.9.1) is also a mild SemVer hygiene signal — it suggests version numbers are not a trustworthy contract here, so pin exact versions and read the diff rather than relying on ^2.9. Pre-existing risks are unchanged and dominate: single-maintainer project with limited bus factor, and a delivery mechanism that fails silently if the scheduler stops.

Key questions

  • Did composer.json retain support for our current Laravel and PHP versions, or was the floor raised? Which versions are in the CI matrix?
  • Is Laravel 13 GA yet, and do we have any application on it within the planning horizon? If not, this release is not actionable for us today.
  • What is the release cadence and maintainer responsiveness (median time-to-merge on issues/PRs) over the last 12 months?
  • Does the package provide idempotency guarantees or any signal when a scheduled run is missed?
  • Are there existing in-house reminder/follow-up implementations this would replace, and who owns migrating them?

Integration Approach

Stack fit Best suited to a conventional Laravel monolith or modular monolith on a standard LAMP/VM or container platform with a real cron-driven schedule:run and a supervised queue worker. It is a poor fit for architectures where per-minute cron is unavailable, where the queue is optional, or where notification delivery is already centralized in a separate service (in which case snooze becomes a second, competing scheduling source of truth).

Migration path Adopt as an additive capability, not a rewrite. Sequence: (1) pin the exact version currently compatible with our Laravel release — do not jump to 2.9.1 unless we are on, or imminently moving to, Laravel 13; (2) ship the migration and trait to a single low-risk model in a non-critical flow; (3) verify end-to-end delivery in staging with the scheduler running; (4) only then expand to customer-visible reminders. If we are on an older Laravel, 2.9.0 is functionally equivalent for us and is the safer pin today.

Compatibility Validate PHP version floor against our runtime before anything else; Laravel 13 support typically implies a recent PHP minimum. Confirm the published config keys and command signature haven't shifted from our pinned version, and confirm the migration is additive and safe to run on a live database.

Sequencing Treat this release as a forward-compatibility gate rather than a feature: it should be consumed as part of a Laravel 13 upgrade workstream, bundled with the framework upgrade and its regression suite, not merged on its own. If no Laravel 13 upgrade is planned in the next two quarters, log the assessment and take no action beyond confirming our pinned version remains installable.

Operational Impact

Maintenance Near-zero ongoing code maintenance — the package is small and stable. The real maintenance burden is dependency tracking: we must monitor this repo for framework-compatibility releases (this one being the archetype) and re-validate at each Laravel major. Budget a recurring, small review per Laravel upgrade cycle.

Support No commercial support; a single primary maintainer plus drive-by contributors. Escalation path for a production bug is a GitHub issue. Mitigate by vendoring or forking rights under the MIT license and keeping the integration surface small enough that a fork is a day of work, not a quarter.

Scaling The snoozes table grows monotonically with every scheduled reminder; it needs an archival or pruning policy or it becomes a slow, bloated table and a backup/restore cost. Volume scales with reminder creation rate, not user count, so forecast from expected reminder-per-user-per-month. Dispatch throughput is bound by queue worker capacity, not by the package.

Failure modes The dominant failure is silent non-delivery: scheduler not running, queue worker down, a crashed job with no retry, or a missed window — none of which surface as errors to the application. Secondary modes: duplicate notifications if a run overlaps or retries without idempotency, timezone drift producing off-by-hours reminders, and unbounded table growth. Instrument this with a delivery-latency metric and an alert on "snoozes due but undispatched beyond N minutes" before it touches a customer-facing flow.

Ramp-up Low for engineers — the API is idiomatic Laravel and a mid-level developer is productive in under a day. The non-obvious cost is teaching the team the operational contract: reminders are only as reliable as the scheduler, and every new reminder type needs a test that proves it actually fires. Document the scheduler dependency and the delivery monitoring in the same place as the integration, or the next team will assume it is a guaranteed-delivery service.

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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings