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

Mentions Laravel Package

flarum/mentions

Flarum Mentions adds @mention support to your forum. Type @ to autocomplete users, link to their profiles, and notify mentioned members through Flarum's notification system. It works in posts and replies, making discussions more engaging and helping people quickly spot when they're referenced.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Framing correction (important): despite the request framing, flarum/mentions is not a Laravel package. It is a first-party extension for Flarum, a forum platform that uses Laravel/Illuminate components (container, database, validation, events) but is not a Laravel application and exposes no Laravel service provider, facade, config publish, or migration set intended for host-app consumption. A TPM should evaluate it as a domain reference implementation + optional forum component, not a composer require dependency for a Laravel product.

Architecture fit

  • Strong fit only if the target is a Flarum forum. The extension provides end-to-end mention semantics: @ autocomplete (users, groups, posts), mention rendering through the s9e/TextFormatter pipeline, persistence of mentions in post content, mention-based notification drivers, and reply-to-post threading.
  • Zero fit as a drop-in for a Laravel app. The valuable asset is the design pattern: parse-on-write mention extraction, normalized mention tables, per-recipient notification fan-out, and client-side autocomplete over a search endpoint.
  • It is a core-bundled extension — Flarum ships it in the default distribution. Its low star count (18) and dependents: 0 are measurement artifacts of first-party monorepo publishing, not adoption signals. Do not let the popularity score drive the decision.

Integration feasibility

  • If Flarum: high. Enable via admin panel or composer dependency; no schema authored by us; permissions and notification preferences are wired into Flarum's settings UI.
  • If Laravel: infeasible as a dependency. Realistic path is porting the mention grammar/tokenizer and notification fan-out (~days, not weeks) onto our own models. The @"Display Name"#<id> / post-reference encoding is the one thing worth copying verbatim for storage compatibility and interoperability with Flarum exports.

Technical risk (ranked)

  1. Version lock to flarum/core. Extensions are not independently versioned; a core major bump can break extenders, formatter plugins, and the JS/Mithril frontend together. Migration effort is "rebase the extension," not "bump a semver."
  2. Metadata anomaly. Last release 2026-10-18 is in the future relative to normal release cadence; this smells like a bad tag or registry clock issue. Verify the actual tag and its composer.json constraint before pinning.
  3. Write amplification. One post with N mentions creates N notification rows plus mention records transactionally with the post insert. Under bursty load this is the first thing to hurt.
  4. Identity drift. Mentions store display names at write time; renames, deletions, and GDPR erasure create dangling or stale references that must be handled by a re-render/lookup layer.
  5. Fork risk. Any product-specific behavior (group mentions, cross-post references, mention-rate limits) means maintaining a fork against a moving core.

Key questions to resolve before commitment

  • Is the deliverable a Flarum forum, or a Laravel product that needs mentions? These are different projects with different answers.
  • Which Flarum major version, and what is our core upgrade cadence? That is the true maintenance clock.
  • Do we need mention semantics in an existing content model, and is Flarum's stored grammar an interoperability requirement or just an inspiration?
  • Who owns the fork if we customize, and can we absorb a core rebase twice a year?
  • What is the notification volume ceiling per post, and do we need throttling/coalescing that upstream does not offer?

Integration Approach

Stack fit

  • Flarum target: native. Install into the existing Flarum instance; the extension's only external touches are the composer graph, the admin settings surface, and the frontend bundle.
  • Laravel target: treat as a specification. We reimplement three pieces — mention tokenizer/formatter, mention persistence (polymorphic: mentioner → mentioned), and notification dispatch — behind our own interfaces so the forum extension can be swapped later.

Migration path

  1. If adopting Flarum: stand up the forum as a sibling service, not inside the Laravel app; share identity via SSO rather than a shared database. This keeps the extension's schema out of our domain model.
  2. If porting: copy the persisted mention grammar so content remains parseable in both directions, and import historical mentions by re-parsing existing post bodies in a backfill job — idempotent, batched, and rate-limited.
  3. Do not attempt a live dual-write of mentions between systems; pick one system of record per content type.

Compatibility

  • Pin the extension to the exact core minor; assert the pairing in CI by booting a Flarum container and running an integration test that creates a post with a user mention and a post mention, then asserts notification delivery and rendered output.
  • Watch the frontend build: Flarum's JS toolchain is versioned with core; a stale bundle is a silent failure mode, not a build error.

Sequencing

  1. Decide forum-vs-port (gate; blocks everything else).
  2. Verify the release tag and constraint; pin.
  3. Wire identity (SSO) or the port's mention model — not both.
  4. Notification transport and per-user preferences before enabling mentions broadly.
  5. Rate limits and fan-out caps before the first high-traffic thread.
  6. Backfill/import only after the renderer is stable.

Operational Impact

Maintenance

  • Low in the Flarum case: first-party, MIT, core-adjacent, small and stable surface. Realistically a handful of hours per core release, plus periodic verification.
  • Non-trivial in the fork case: formatter plugins, extenders, and the JS bundle all move together. Budget a standing 1–2 engineer-days per core minor.
  • Do not expect upstream to accept product-specific features quickly; plan for a maintained patch set with a documented rebase runbook.

Support

  • Support channel is the Flarum community forum, not a commercial SLA. Escalation for a production outage is us-dependent: we must own triage of mention rendering, notification delivery, and autocomplete failures. Document an internal owner from day one.
  • MIT + first-party governance is a reasonable long-term bet; the abandoned-maintainer risk is low here despite the popularity score suggesting otherwise.

Scaling

  • Mention parsing is CPU-light (regex/state machine over a post body); the cost is in the notification fan-out and the mention lookup queries in autocomplete.
  • Autocomplete is the latency-sensitive path: it hits a search endpoint per keystroke burst. Put it behind debounce + caching; it is the most likely cause of perceived slowness.
  • Notification fan-out should be queued and capped. Decide the policy for a post that mentions 200 users before, not after, it happens.

Failure modes

  • Orphaned/stale mentions after rename, deletion, or erasure — renders as dead text or leaks a prior display name. Requires a post-render resolution step, not a stored string.
  • Notification floods from mass-mention posts; no upstream throttle guarantee.
  • Broken render after core upgrade — content renders but mentions lose styling/links, which is easy to miss in smoke tests.
  • Permission leakage — a mention in a restricted space must not surface content in the notification. Verify mention resolution respects visibility at read time.
  • Backfill duplication on re-run without idempotency keys.

Ramp-up

  • Flarum extension development (extenders, settings, Mithril frontend) is a specialized, small skill set. Budget roughly one week for a competent PHP engineer to be productive in the Flarum case; the mention-specific surface itself is small — the cost is the platform, not the package.
  • In the port case, ramp-up is minimal: the pattern is standard tokenize-on-write plus polymorphic relations, familiar to any Laravel engineer.
  • Onboarding material should include the persisted mention grammar and the notification fan-out policy as the two artifacts that outlive the implementation choice.
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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums