flarum/gdpr
A Flarum extension for GDPR compliance, giving users tools to export their personal data and request account deletion or anonymization, with admin controls to manage privacy, consent, and data-handling requests.
Architecture fit. The first thing to flag is a framing mismatch: flarum/gdpr is not a Laravel package. It is an extension for Flarum, a standalone PHP forum application that borrows selected illuminate/* components but is not a Laravel application and does not follow Laravel package conventions (no service provider auto-discovery in the Laravel sense, no publishable config in the familiar pattern, no Blade/Laravel auth integration). If the intent is "add GDPR tooling to our Laravel product," this package does not drop in. If the intent is "we run Flarum as a community component and need GDPR coverage there," it is directly relevant. Confirm which problem we are solving before any further evaluation.
What it actually does. Based on the extension's scope, it provides the user-facing GDPR surface: data export (portability), account anonymization/erasure, and consent-oriented controls. These are user-data lifecycle operations, which puts the package in the compliance-critical path rather than the convenience-feature path.
Integration feasibility. Moderate for a Flarum deployment, low for anything else. Installation is a Composer require plus extension enable, but the effective work is not installation — it is data mapping. Erasure and export are only correct if every extension that stores user-identifiable data participates. Any third-party Flarum extension writing PII to its own tables, external services, or logs will silently escape both export and anonymization. That discovery work is the real integration cost and it is per-deployment, not per-package.
Technical risk.
Key questions.
Stack fit. Only viable if we operate Flarum. In that case it fits the standard extension model: Composer dependency, enable via admin, no separate service to run. If we are a Laravel shop, the realistic pattern is Flarum as a satellite application with shared identity (SSO) and a shared user-lifecycle process, not Flarum embedded in Laravel. Plan the boundary accordingly — GDPR obligations then span both systems and must be orchestrated, not delegated to this extension alone.
Migration path. There is no migration in the schema-migration sense for us; the extension ships its own. The migration we own is procedural: inventory every store of user PII (core tables, extension tables, object storage, logs, analytics, email provider, CRM), classify each as in-scope or out-of-scope for erasure and export, then close gaps outside the package's reach. Do this before enabling the feature for real users.
Compatibility. Verify three axes explicitly: Flarum core version, PHP version, and coexistence with our installed extension set. The last is the highest-risk and least documented. Build a test matrix around our actual extension list rather than trusting a generic compatibility statement.
Sequencing.
Maintenance. Low ongoing code maintenance — it is a small extension — but the read-only mirror means our maintenance model is "track upstream and pin." Budget for periodic version bumps tied to Flarum core upgrades, and accept that we may need to vendor a patch if upstream is slow. Keep a fork-ready posture rather than assuming we can get timely upstream changes.
Support. Community support only; no vendor SLA. For a compliance-bearing feature, that is a meaningful gap. Internal ownership must be named explicitly — a specific team accountable for correctness of erasure/export behavior, not a shared "platform" bucket.
Scaling. The operations are per-user and low-volume by nature, so throughput is rarely the constraint. The scaling concerns are elsewhere: large export payloads (memory, timeouts, storage), and anonymization writes that can lock hot user rows or cascade across many tables. On large forums, run these as queued jobs with idempotency and progress state, not synchronously in a request. Watch for export archives accumulating in storage with their own retention obligations.
Failure modes.
Ramp-up. Engineering ramp-up on the extension itself is short — hours to a day. The real ramp is organizational: legal/DPO alignment, a documented data map, an intake process for subject requests, and trained responders. Estimate the compliance and process work in weeks, not the code work in days. Staff accordingly, and do not let a low installation cost create the impression that this is a low-effort commitment.
How can I help you explore Laravel packages today?