Flarum extensions: do's and don'ts

Jul 7, 2026 · 5 min read

Every Flarum admin I've met goes through the same phase. You find the extensions directory — and you want all of it. Emoji reactions, a fancy editor, three flavors of "related discussions," that one plugin that puts the weather in the header. It's fun. It's also how forums end up slow, fragile, and a nightmare to update.

Here's the thing nobody tells you when you're starting out: the best Flarum communities I've seen run fewer extensions than you'd guess. Not because their admins are lazy — because they're disciplined. Every extension you add is a small, permanent tax you pay on every update, every bug, and every page load.

So this issue is the do's and don'ts I'd hand my own community. The short version: keep it lean.

Here's what's ahead:

  • Why "install everything" quietly backfires
  • The don'ts — the habits that pile up debt
  • The do's — how to stay lean without missing out
  • A 15-minute audit you can run today

Why lean wins

Every extension is code — someone else's code, running inside your forum, on every request. Three costs stack up, and they compound:

Updates get harder. Flarum core moves forward, and every extension has to keep up. Eight well-chosen extensions is a quick, boring update. Forty is a compatibility puzzle — one lagging author can hold your whole forum back from a security release, and you won't know which one until you find it by hand.

Troubleshooting gets slower. When something breaks, your first job is figuring out what broke. On a lean install that's a two-minute process. With a pile of overlapping extensions — half of them touching the same posts, the same permissions, the same frontend — you're disabling things one at a time hoping the white screen goes away.

Pages get heavier. Enabled extensions ship CSS and JavaScript to every visitor and add queries to every page. A few won't matter. Two dozen absolutely will — and readers feel a slow page long before they ever file a complaint. They just leave.

None of this shows up on day one. It shows up six months in, right when you can least afford the downtime.


The don'ts

Don't install every extension just because it exists. "Might be handy someday" is how you end up with forty extensions and no idea what half of them do. If you can't name the problem an extension solves for your community, you don't need it yet.

Don't hoard disabled extensions. Disabling isn't removing. The code is still in your composer.json, still pulled on every update, still a thing that can break the next composer update. If you tried it and didn't keep it, uninstall it properly.

Don't stack extensions that do the same job. Two SEO extensions, two editors, two reaction systems — they fight over the same hooks and you get the buggy union of both. Pick one. Remove the other.

Don't build a core feature on an abandoned extension. Before you lean on something, check the last commit and whether it already supports the Flarum version you're on. A flashy extension that's been untouched for two years is a liability wearing a feature's clothes.


The do's

Do install only what the forum actually needs. Start from your community's real workflow, not the directory. What do your members do every day? Add the extension that makes that better — and ignore the rest until there's a concrete reason.

Do keep it as lean as you can. Fewer moving parts means fewer things to update, fewer things to break, and faster pages. "Lean" isn't a limitation — it's the least amount of friction between you and a forum that just works.

Do audit on a schedule. Every couple of months, walk your extension list and ask one question of each: is anyone actually using this? If the answer is no, it goes. Communities change; your extension list should change with them.

Do test before you update. Try updates on a throwaway copy first — not live at 9pm on a Friday. If you don't have a disposable environment, spin one up. Testing somewhere you can break turns "surprise outage" into "ah, that one needs a new version first."

Do remove, not just disable. When you're done with an extension, uninstall it and let it leave your composer.json. A clean install is one you can actually reason about.


A 15-minute audit you can run today

Open your admin panel and go extension by extension:

  • Name the job. What does this do, and who uses it? Can't answer? Flag it.
  • Check for overlap. Anything doing the same job as another? Keep the better one.
  • Check the health. Is it maintained, and does it match your Flarum version?
  • Disabled? Decide. Re-enable it or remove it for good — no graveyard.
  • Then actually remove the flagged ones — properly, not just toggled off.

That's the whole thing. You'll almost always finish lighter than you started, and your next update will thank you.



My honest take

I'd rather run a forum with eight extensions I trust than forty I'm afraid to touch. Every one you add should earn its place — and keep earning it. The goal was never a big extension list. The goal is a forum that's fast, stable, and boring to maintain, so you can spend your time on the community instead of the plumbing.

So before you install the next one, ask the only question that matters: does my community actually need this, or do I just want to click install?

What's the one extension you'd never give up? Hit reply and tell me — I'm always trimming my own short list.

Run a better Flarum.

Hosting pitfalls, performance wins, and what I'm building for forum owners — real lessons from running Flarum in production, straight to your inbox.

Join free
Every account gets the newsletter. Opt out anytime.