Category Archives: 00 – Overview

Flarum Overview

Welcome to the NZRT Wiki Podcast. Today we’re looking at Flarum Overview.

So, what exactly is Flarum? At its core, Flarum is a free, open-source forum software. If you’ve ever found older forum platforms bloated, slow, or just plain ugly, Flarum was built as a direct answer to those frustrations. It’s designed around three guiding principles — simplicity, speed, and extensibility — and it’s fully MIT licensed, which means you own your data and can host it yourself.

Let’s talk about those principles a little more. When the Flarum team say simple, they mean a clean, uncluttered interface with minimal configuration needed to get up and running. There’s no legacy baggage dragging it down. When they say fast, they mean it in a very specific technical sense — Flarum is a single-page application, so when you navigate between pages, the browser doesn’t do a full reload. Transitions happen instantly, which makes the whole experience feel much snappier than traditional forums. And when they say extensible, they mean the core is deliberately kept minimal — almost every additional feature you’d want gets added through Flarum’s extension system, which we’ll touch on in a moment.

Now let’s look at how Flarum is actually built under the hood. The backend runs on PHP version 8 and above, using the Laravel framework — so if you’ve worked with Laravel before, you’ll feel right at home. The API layer follows the JSON colon API specification, which is a standardised, RESTful approach to how data gets passed around. On the frontend, Flarum uses a JavaScript framework called Mithril dot JS to power that single-page app experience we just mentioned. For the database, it uses either MySQL or MariaDB. Authentication is handled through session cookies and API tokens, depending on how you’re accessing it. And for search, the default is MySQL’s built-in full-text search, though you can swap that out for a more powerful tool called Meilisearch if you install the relevant extension.

Next up, the key concepts you’ll encounter when working with Flarum. There are six main ones to know. First is a discussion — that’s essentially a thread, made up of a title and a series of posts. Second is a post, which is an individual reply within a discussion. Third is a tag — tags in Flarum work like categories. You can apply them to discussions, they support a hierarchy, and there are two levels: primary tags and secondary tags. Fourth is a user — that’s any member of the forum, identified by a username, email address, avatar, and group memberships. Fifth is a group — groups are how permissions work in Flarum. Out of the box there are four: Admin, Moderators, Members, and Guests, each with their own permission set. And sixth is an extension — these are plugins that add or modify functionality within Flarum. Because the core is intentionally lean, extensions are how you build out the features you actually need.

Now, when it comes to editions, there are two options available to you. The first is Flarum Community, which is the self-hosted version — free, open source, MIT licensed, and gives you full control over your own installation. The second is Flarum Cloud, which is a managed hosting service run by the Flarum team themselves, offered as a paid option if you’d rather not manage the infrastructure. For reference, NZRT runs the Community edition, self-hosted on the Hoopla cPanel server.

If you want to dig deeper into Flarum, the main website is at flarum dot org, full documentation lives at docs dot flarum dot org, and the source code is publicly available on GitHub under the flarum slash framework repository.

That’s it for this episode of the NZRT Wiki Podcast. Thanks for listening.