flarum/flags
Flarum extension that lets moderators flag posts for review, adding a dedicated flags list and permission controls for reviewing and resolving flagged content.
Architecture fit. The first thing to correct in the intake record: flarum/flags is not a Laravel package. It is a Flarum extension — a Composer-installable PHP package that boots inside flarum/core's extension lifecycle, not inside a Laravel service container. It has no service providers, no Illuminate dependencies, and no relevance to a Laravel application unless that application is a Flarum forum. If the business need is "moderation/flagging workflow for our Laravel product," this package is the wrong building block and the evaluation should stop here. If the need is "community forum with user-generated content moderation," then Flarum is the platform decision and this extension is a feature within it.
What it actually does. It provides the flag/report primitive: users flag posts (and users), flags are recorded, moderators review and action them, and the extension wires permissions and notifications around that workflow. It is a first-party Flarum extension, historically bundled with core and split out as its own package for independent versioning.
Integration feasibility. High if Flarum is already the platform — composer require flarum/flags, enable via admin or php flarum extension:enable flarum-flags, run migrations. Low otherwise: adopting it means adopting Flarum, its PHP/MySQL stack, its permission model, its frontend (Mithril/JS), and its release cadence.
Technical risk.
flarum/framework monorepo. Issues and PRs do not land here; any fork or local patch is a maintenance liability that must be reapplied every release. This is the single most important operational fact about the package.Key questions for the team.
Stack fit. PHP 8.x, MySQL/MariaDB, Composer — compatible with a standard Laravel-era toolchain at the runtime level, incompatible at the framework level. Treat it as a Flarum plugin, full stop. There is no adapter path that makes this extension useful inside a non-Flarum PHP app short of lifting the flag domain model and reimplementing it, at which point you are not integrating this package, you are reading it as a reference implementation.
Migration path. Two scenarios:
php flarum migrate, seed permissions for the relevant groups (members can flag, moderators can view/resolve), verify notification wiring to the moderation queue. Half a day for an experienced Flarum developer.Compatibility. Constrain in composer.json to the matching Flarum core series and let core's own dependency resolution govern. Pin exact versions in production and upgrade deliberately — auto-updating a read-only split package is how you get a boot loop on a Friday.
Sequencing.
Maintenance. Low code churn, high coordination cost. The extension itself is stable; the burden is tracking Flarum core releases and re-validating on each bump. Because the repo is a read-only split, there is no local issue tracker and no merge path for fixes — every deviation from upstream is a permanent fork cost. Budget a recurring line item for core upgrade validation, not for extension maintenance.
Support. Community-supported via the Flarum discourse and the framework monorepo. No vendor SLA, no security advisory feed specific to this package — advisories arrive through core. If the forum is customer-facing and moderation is a compliance control, that absence of formal support is a real risk to document, not hand-wave.
Scaling. Negligible incremental load — flag writes are small row inserts and the read path is moderator-facing, not hot. The scaling concern is not this extension but the forum itself: search, attachment storage, and notification fan-out dominate. Watch flag-table growth if the community is large and moderation is slow; archiving resolved flags should be a scheduled job, not an afterthought.
Failure modes.
Ramp-up. For a developer already fluent in Flarum: under a day to productive, under a week to own the upgrade runbook. For a Laravel-only team with no Flarum exposure: two to three weeks to fluency in the extension lifecycle, Mithril frontend conventions, and the permission model — and that cost should be charged against the platform decision, not against this package.
TPM recommendation. Do not approve on the basis of this record alone. The score and star count are misleading for a subtree split, and the release date is inconsistent. Re-scope the evaluation to "Flarum as forum platform, with flags as a required capability," confirm the core version constraint, and confirm that read-only upstream-only support is acceptable for a moderation control. If the originating request was for a Laravel application, reject the intake as a category error and route it back.
How can I help you explore Laravel packages today?