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

Message Bundle Laravel Package

ornicar/message-bundle

ornicar/message-bundle is a lightweight Symfony bundle for adding private user-to-user messaging to an application. It provides Doctrine-backed message and conversation entities plus integration points for inbox-style communication, making it easy to wire basic messaging into existing Symfony projec...

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • In-app messaging / direct messages: build vs. reuse. Messaging is rarely a differentiator, so the reuse instinct is right — but reuse requires a maintained upstream. This package fails that gate, which flips the decision to "build small in-house" or "adopt a maintained alternative."
  • A rejected-option record for the messaging epic. The most valuable output of this evaluation is a decision-log entry ("messaging: build in-house; options considered and why rejected") so the same discontinued package isn't re-proposed by a future search result.
  • A one-day design artifact. The bundle's residual value is its domain model — Thread, Message, Participant (with lastSeenAt), and per-user MessageMetadata for read/deleted state. That's a copyable schema concept before deleting the dependency.
  • Scope negotiation for the messaging roadmap. The evaluation forces an explicit conversation about what "messaging" means: threaded inbox, attachments, read receipts, moderation/reporting, real-time delivery, retention/GDPR deletion, notification fan-out. None of that exists here and none is coming — useful for sizing and for cutting scope in v1.
  • A vendor-adoption gate for future package decisions. This case defines the checklist the team should apply to all reuse candidates: recent commits, a security response channel, framework-version compatibility, real dependents.

Important framing correction for stakeholders: this is a Symfony bundle, not a Laravel package, and it is explicitly discontinued — the author redirects to FriendsOfSymfony/FOSMessageBundle. For a Laravel codebase it would have to be re-implemented regardless, at which point you are writing the feature, not adopting a package. The supplied 4.16 "opportunity" score should be read as the problem space is under-served by good packages, not as a signal that this package is viable.

When to Consider This Package

Adopt essentially never for new work. The qualifying conditions are narrow and mostly archaeological:

  • You are maintaining a legacy Symfony 2.x application that already has this bundle installed, and you're deciding whether to keep or remove it during a stabilization pass.
  • You want a 30-minute reference read of the entity relationships before designing your own messaging schema. Read it; don't require it.
  • You need a throwaway proof-of-concept on a disposable branch, with no expectation of production, security review, or handover.

Look elsewhere — or build — when any of these hold:

  • Laravel or any non-Symfony stack. No service provider, no facade, no config, no integration path, no community to ask.
  • Zero-dependency-risk posture. One star, zero dependents, discontinued, no security response channel: a supply-chain liability, not a component.
  • Modern PHP. Unmaintained pre-FOS code won't have been touched for PHP 8+, and its Doctrine/Symfony version constraints will fight a Laravel 10/11 composer.json.
  • Scope beyond bare threads — real-time delivery, attachments, moderation, read receipts, search, retention/deletion, notification fan-out. None of it is here.
  • Any roadmap horizon beyond the current quarter. You'd be accepting a permanent maintenance tax with no upstream.

How to Pitch It (Stakeholders)

For executives (one paragraph): We evaluated an open-source component for in-app messaging. It's no longer maintained — the author has discontinued it and redirects users elsewhere — it's built for a different framework than ours, and it has essentially no adoption. We do not recommend taking a dependency on it. The useful output of the evaluation is the underlying design: a three-part model of conversations, messages, and participants that our team can replicate in a few engineering days. Recommendation: build a minimal messaging slice ourselves, or adopt an actively maintained package if one passes a maintenance check — and record this as a considered-and-rejected option.

For engineering (the actual ask):

  • Timebox a 1–2 day spike on a bespoke, Laravel-native model: threads, participants, messages, unread counters, soft-delete for retention. That's the deliverable, not a vendor evaluation.
  • Treat the repo as documentation only — do not add it to composer.json. Pull the four entities' relationships into app/Models as a sketch, then discard the source.
  • Keep bundle-derived types — if any survive the spike — behind your own interfaces (MessageComposer, ThreadRepository) so controllers never depend on third-party namespaces. Use domain events (MessageSent, ThreadCreated) so notifications, mail, and auditing subscribe without touching message code.
  • Mark read state in the controller action, not middleware — otherwise a background inbox-badge poll will silently mark everything read.
  • Add a hard gate to any future package comparison: commits in the last 12 months, a security/response channel, framework-version compatibility, and a handful of real dependents. This package scores zero on all four.
  • Deliverable: a short decision record so the question doesn't get re-litigated.
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