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

Rocket Chat Laravel Package

laravel-notification-channels/rocket-chat

A Laravel notification channel for sending messages to Rocket.Chat. Integrate Rocket.Chat incoming webhooks with Laravel notifications to deliver alerts, updates, and custom messages from your application.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Strong, conditional on Laravel being your application framework. This package is not a standalone SDK — it is a driver plugged into Laravel's Notification abstraction (Illuminate\Notifications\ChannelManager), contributing a rocketChat channel and a RocketChatMessage value object. If your services already route operational and user-facing messaging through Notification::route(...) or the Notifiable trait, adoption is a two-line change in the via() array plus a webhook route. If your stack is Symfony, plain PHP, or a Laravel app that doesn't standardize on Notifications, the package has zero surface area for you and you should call Rocket.Chat's incoming-webhook endpoint directly.

Integration feasibility. Low effort, low code volume. The runtime path is: notification dispatched → queued job → channel send() → Laravel HTTP client → Rocket.Chat incoming webhook → channel post. Configuration is a per-notifiable webhook URL resolved via routeNotificationForRocketChat(), or an on-demand route for ad-hoc sends. Rocket.Chat's incoming-webhook payload (text, attachments, alias, emoji, channel) is a near-subset of Slack's, so teams migrating from laravel/slack-notification-channel will find the message API familiar but not drop-in compatible — attachment schemas and field names differ enough that message-building code must be rewritten, not copied.

Technical risk. The code risk is negligible; the governance risk is the actual finding. The evidence is unambiguous:

Signal Value Read
Stars 13 Effectively no community
Dependents 0 No production validation signal
Last release 2024-04-15 Not abandoned, but not actively exercised
Score 0.899 Composite quality is fine — this is a small, clean package
Opportunity 21.71 No growth trajectory

This lives under the laravel-notification-channels umbrella, an org with a documented history of individual channels going dormant. Treat it as single-maintainer, fork-on-sight code. Mitigating factors: MIT license, tiny dependency tree, and a narrow contract — the blast radius of the package breaking is bounded and the replacement cost is roughly 100–150 lines you could own outright.

Key questions to resolve before sign-off.

  1. Does the current release support Laravel 11/12 and PHP 8.2/8.3? The published constraint matrix is the gating item — verify against composer.json, not the README.
  2. Does it use Illuminate\Support\Facades\Http? If yes, Http::fake() makes the channel trivially testable and lowers the cost of forking. If it uses raw Guzzle, test ergonomics degrade.
  3. Does it expose Rocket.Chat attachments (color bars, fields, buttons) or only plain text? Plain-text-only materially reduces the value proposition for alerting use cases.
  4. Rate-limit and retry behavior: does it honor Rocket.Chat 429s and surface 4xx as exceptions so Laravel's queue retry/failed() hooks fire?
  5. Is the webhook URL pulled from config/env only, or can it be resolved from user-controlled model state? The latter is a secret-leak and SSRF vector.

Integration Approach

Stack fit. Adopt only if (a) Laravel 10+ and (b) Rocket.Chat is an already-approved collaboration surface. Do not let this package be the reason Rocket.Chat gets adopted — it is a delivery mechanism, not a capability.

Migration path.

  • From Slack: highest-value case. The Notifiable routing pattern and Notification classes carry over; only the message-building layer changes. Budget 0.5–1 day per notification class, mostly on attachment formatting.
  • From raw cURL / custom webhook jobs: clean win. Consolidates ad-hoc HTTP calls into a tested, queued channel.
  • Net-new: start with on-demand notifications (Notification::route('rocketChat', config('services.rocketchat.webhook'))->notify(...)) so you don't prematurely couple webhook URLs to Eloquent models.

Compatibility. Pin exactly ("laravel-notification-channels/rocket-chat": "x.y.*"), commit composer.lock, and add a Renovate/Dependabot rule that opens a PR but never auto-merges. Because dependents are zero, you will be the first to hit version-compat breaks — treat every Laravel major upgrade as a re-evaluation trigger for this dependency.

Sequencing.

  1. Spike (½ day): install in a scratch branch, send one plain-text notification to a throwaway Rocket.Chat channel, confirm Http::fake() works in a unit test.
  2. Fork-and-vendor (1 day): if the spike passes, mirror the repo to your internal Git and require it via a VCS path. This is cheaper than it sounds and eliminates the abandonment risk entirely — you now control the Laravel constraint.
  3. Pilot (1 week): one low-stakes, high-signal channel — CI/deploy events. Not customer-facing, not paging.
  4. Expand: additional notification classes, attachments, per-environment routing.
  5. Deferred: never make this the delivery path for security alerts or PagerDuty-equivalent escalation until it has 60+ days of clean delivery history. Chat webhooks are best-effort, not durable.

Operational Impact

Maintenance. Nominal runtime maintenance (no daemons, no schema, no state). Real maintenance is dependency stewardship: expect to own the fork within 12 months. Accept that cost explicitly, or reject the package — there is no third option given 13 stars and 0 dependents. The upside: the code is small enough that a mid-level Laravel engineer can fully audit it in under an hour.

Support. No vendor. Community support is effectively nil at this star count. Your support model is "the engineer who forked it." Name that person before adoption, not after.

Scaling. Rocket.Chat incoming webhooks are bound one-per-channel per-integration. This is the hard ceiling and it's structural, not a package limitation:

  • High fan-out (many teams, many channels) means many webhooks and a routing/config management problem you'll end up solving in application config.
  • High volume per channel will hit Rocket.Chat's per-integration rate limits. Past a few messages/second, the correct architecture is a bot user + REST API, not incoming webhooks — at which point you are writing a custom channel anyway.
  • Message payload size and attachment count are bounded by Rocket.Chat; long logs and stack traces must be truncated and linked, not inlined.

Failure modes. Ranked by likelihood × impact:

  1. Silent non-delivery. Queued notifications that exhaust retries without alerting anyone. Highest-risk mode — a "notification sent" log line is not proof of delivery. Mitigate with failed() handlers on the job and a dead-letter queue.
  2. Webhook revocation/rotation. Rocket.Chat admins regenerate or delete integrations; the channel then 404s. No built-in detection. Mitigate with a daily synthetic canary message.
  3. Channel deletion. Webhook survives, target channel doesn't — or worse, the name is reused by another team and your alerts land in the wrong place.
  4. Laravel major upgrade incompatibility. Predictable within ~18 months; covered by the fork.
  5. Secret leakage. Webhook URLs are bearer-equivalent credentials. Enforce config/env-only resolution, and rotate on any suspected exposure.
  6. Queue backpressure. A stalled queue silently delays all notifications. This package inherits, not causes, that risk — but it inherits it fully.

Ramp-up. Trivial. A Laravel-fluent engineer is productive in under two hours; the Notification channel contract is well-documented and this package adds almost no surface area. The ramp-up cost that matters is operational: someone must own the fork, the canary, and the Laravel-upgrade re-evaluation.

Recommendation. Adopt narrowly, fork immediately. The quality score (0.899) reflects a genuinely clean, focused package; the 21.71 opportunity score and 13-star/0-dependent footprint correctly flag it as a community dead end. Use it for internal, non-critical, human-read chat ops where Rocket.Chat is already sanctioned — and vendor it on day one so the abandonment scenario costs you nothing. Reject for customer-facing messaging, paging, compliance-relevant audit trails, or any team without a Laravel-native notification layer already in place.

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.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox