// the find
flarum/framework
Simple forum software for building great communities.
Flarum is a PHP forum platform built on Laravel with a Mithril-powered SPA frontend. It targets developers and community managers who want a self-hosted discussion board with a cleaner UX than phpBB/Discourse and a proper extension API. The monorepo ships core plus ~20+ bundled extensions (spam filtering, bbcode, emoji, audit logging, etc.).
The extension architecture is genuinely well-designed — extensions register via an `extend.php` contract that hooks into both the PHP backend and the JS frontend without monkey-patching. The audit extension ships with migration compatibility tests (UpgradeFromKilowhatTest) and third-party integration tests, which is more diligence than most forum projects bother with. Mithril is an underrated choice here: it keeps the bundle small and forces explicit state management rather than hiding it behind reactivity. The bundled extensions cover the real-world surface area you actually need (Akismet spam, post approval queues, BBCode, embed previews) rather than leaving you to hunt the ecosystem.
The frontend build story is messy — each extension ships its own compiled `dist/` files committed to the repo alongside source, which means the git history bloats and diffs are noise. The JS toolchain is webpack-per-extension with no apparent monorepo build orchestration, so building everything from scratch is a manual process. REST API is JSON:API spec, which is correct but verbose and the official API client for extensions is Mithril-specific, making it awkward to build non-SPA integrations or mobile clients. Shared hosting is the implied deployment target (the README touts 'quick and easy to deploy with PHP') but production setups need queue workers, Redis, and proper opcache tuning that the docs underemphasize — someone following the happy path will hit performance walls on any real traffic.