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

Filagora Forums Laravel Package

filagora/filagora-forums

Filagora Forums is a Laravel/PHP package for adding a complete discussion forum to your app. It includes categories, topics, replies, moderation, role-based permissions, configurable models, migrations, and a clean Blade UI, making forum setup and customization straightforward.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Community engagement as a roadmap pillar, not a backlog item: v0.6.0 adds the three capabilities that typically justify a community product's second phase — read tracking (forum_reads, thread_reads, ReadTracking), mentions (post_mentions, Mentions, UsersMentioned), and attachments (post_attachments, Attachments). PM can frame the forum as a full discussion product rather than a posting surface, and sequence "return visit" and "notification" work without new architecture.
  • Re-engagement and "what's new" without inventing state: ReadTracking provides isUnread(), unreadAmong() for a page of threads, unreadThreads() for a new-content feed, plus mark-thread/forum/everything-read and a hand-made unread flag that beats every read time. This directly supports decisions about unread badges, digest emails, default landing views ("Unread" vs "Latest"), and whether to invest in a notification system at all. read_tracking.unread_max_lookback_days is the explicit product lever for the cost/freshness trade-off on those feeds.
  • Notifications as a product decision with a kill switch: Mentions ship with UserMentionedNotification, an email default switchable via mentions.mail.enabled, and a configurable route (mentions.routes.thread) so deep links land on the product's own permalink. PM can launch mention emails, A/B them, or turn them off without engineering work — and can decide notification policy (frequency, caps) with mentions.max_per_post as the abuse ceiling.
  • Mentions policy is enforceable, which de-risks the launch: extraction skips code and quoted blocks, never notifies the author, never notifies the same person twice, and only notifies people who can see the thread. The post row is locked and the cap is counted across edits. This means PM can ship mentions in a moderated, permissioned community without writing a bespoke abuse-prevention spec — and can state the policy ("you can mention at most N people per post, forever") as a product rule rather than an incident response.
  • Attachments as a buy-not-build decision: The package covers upload with a per-person hourly limit, inline upload then claim, thumbnails via intervention/image, access that follows the post's visibility, serving with safe headers and a download count, and SVG never rendered in-page. That is the unglamorous 80% of a file-upload feature — permission inheritance, MIME safety, and thumbnail generation — and it is exactly the portion a PM should not fund as bespoke work.
  • Retention and storage cost become configurable, not code: filagora:forums:prune-attachments plus the forums.orphaned_attachments retention rule give PM a policy dial for orphaned files. This supports decisions about storage budget, "how long do we keep uploads from deleted posts," and whether attachments are a permanent archive or a transient convenience.
  • Privacy and erasure are product-visible, not legal footnotes: The privacy export now lists a person's uploads, read markers, and the posts that mentioned them; erasure removes uploads never used and the read/mention records. This supports GDPR/DSAR commitments and lets PM answer "what happens to my data if I leave" — a common blocker in enterprise and EU community sales.
  • Search roadmap remains intact and unchanged: v0.5.0's ForumSearch, ThreadDatabaseSearch, ThreadSearchIndex, and filagora:search:backfill remain the search story. The new release adds data worth indexing (attachment presence, mention counts, unread state) but does not change the earlier build-vs-buy framing.
  • Use cases: customer community forums, internal knowledge/discussion boards, support Q&A, documentation discussion, partner/extranet collaboration — now extended to any Laravel product that needs unread state, @-mentions, and file sharing in a moderated, permission-aware forum.

When to Consider This Package

  • Consider it when the product needs a Laravel-native forum whose engagement primitives (unread tracking, mentions, attachments) are already permission-aware and moderation-aware, rather than three separate integrations.
  • Strong fit when the team wants to launch notifications without owning email templating, deduplication, and recipient filtering — mentions.mail.enabled plus UserMentionedNotification is a working default, not a stub.
  • Strong fit when attachments must inherit post/thread visibility. Access that follows the post is the hard part of forum file sharing; getting it from the package removes a whole class of permission bugs.
  • Strong fit when data-subject requests are in scope: export and erasure already cover uploads, read markers, and mention records alongside posts.
  • Check the upgrade path before committing: this release adds an eighth migration, and filagora:adopt now expects twenty-one tables and eight migrations (previously twenty tables / seven). If the team has already adopted the package, treat the table-count expectation as a migration-checklist item, not a surprise.
  • New dependency surface: requires filagora/filagora-core ^0.2.2 and pulls intervention/image for thumbnails. Confirm the core version pin against your existing install and confirm image processing is acceptable in your runtime (memory limits, queue workers, cold-start size).
  • Look elsewhere if the roadmap requires video/audio processing, transcoding, virus scanning, DLP, or CDN-backed media pipelines — attachments here are forum-scoped files and thumbnails, not a digital asset management system.
  • Look elsewhere if notification delivery must be a first-class, multi-channel, preference-center-driven system. Mentions provide one default email with a global switch; per-user channel preferences would be custom work.
  • Look elsewhere if read state must survive across devices with server-authoritative sync guarantees beyond what simple read markers provide, or if analytics-grade engagement reporting (time-on-thread, read depth) is required — ReadTracking answers "read/unread", not "how engaged".
  • The search caveats from the prior assessment still hold: no typo tolerance, complex faceting, multilingual analyzers, personalized ranking, or deep search analytics; validate MariaDB FULLTEXT against production volume before treating the database fallback as the long-term answer.

How to Pitch It (Stakeholders)

For executives: v0.6.0 turns the forum from a place people post into a place people return to. Three additions do the work: unread tracking (a "what's new" experience and the data foundation for digests), @-mentions with email (the cheapest re-engagement loop a community has, shipped with sane limits and a kill switch we control), and file attachments (uploads, thumbnails, and permission-safe serving, built rather than bought). Two points matter commercially. First, all three are policy-configurable — mention caps, retention rules for orphaned files, email on/off, unread lookback window — so we can tune cost and risk without engineering cycles. Second, privacy obligations are covered out of the box: export and erasure now extend to uploads, read markers, and mentions, which removes a recurring blocker in enterprise and EU deals. The incremental cost is one dependency bump (filagora-core ^0.2.2) and one additional image library.

For engineering: The release adds post_attachments / post_attachment with the Attachments service (per-person hourly upload limit, inline upload-then-claim, intervention/image thumbnails, access inherited from the post, safe response headers, download counting, SVG never inlined, authorizeUsing() for third-party files, AttachmentRefused), plus filagora:forums:prune-attachments and the forums.orphaned_attachments retention rule. post_mentions / post_mention ships the Mentions service with extraction that skips code and quoted blocks, author exclusion, recipient deduplication, visibility filtering, and a per-post cap enforced across edits under a row lock, emitting UsersMentioned with listeners for new/edited/approved/restored posts and approved threads, gated by mentions.enabled, with UserMentionedNotification and mentions.mail.enabled. forum_reads / thread_reads / forum_read / thread_read ship the ReadTracking service with mark-read/unread semantics, page-level unreadAmong(), bounded unreadThreads(), subquery-based read-time checks so arbitrary queries can be passed in, and a baseline column via read_tracking.baseline_attribute. Migration bookkeeping moves to eight migrations and twenty-one tables for filagora:adopt; core requires ^0.2.2. Search is unchanged from v0.5.0 — ForumSearch, ThreadDatabaseSearch, ThreadSearchIndex, filagora:search:backfill — and the search package remains suggested, not required, so adoption can stay incremental.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource