Flarum vs NodeBB: Which Forum Should You Self-Host?
Feature Comparison at a Glance
| Feature | Flarum | NodeBB |
|---|---|---|
| Language | PHP (Laravel) | Node.js |
| Frontend | Mithril.js (SPA) | Benchpress templates + vanilla JS |
| Database | MySQL/MariaDB | MongoDB or PostgreSQL or Redis |
| License | MIT | GPL-3.0 |
| Real-time updates | Pusher/WebSocket (optional) | Socket.io (built-in) |
| Docker image | crazymax/flarum (community) | ghcr.io/nodebb/nodebb (official) |
| Minimum RAM | 512 MB | 1 GB |
| Extension count | ~200 community | ~100 official + community |
| Mobile experience | Responsive SPA | Responsive + optional PWA |
| SEO | Server-side rendered fallback | Server-side rendered |
| Moderation tools | Basic + extensions | Comprehensive built-in |
| SSO/OAuth | Via extensions | Built-in (Google, GitHub, Twitter) |
Both platforms target communities that want modern, lightweight forum software. The choice comes down to your tech stack preference and feature priorities.
Quick Verdict
For most self-hosted communities, Flarum delivers a cleaner user experience with lower resource requirements. NodeBB wins when you need real-time features, built-in chat, or already run a Node.js stack. Flarum is the lighter, faster option; NodeBB is the more feature-complete one out of the box.
Overview
Flarum is a PHP-based forum built on Laravel with a Mithril.js single-page application frontend. It’s fast, minimal, and extensible. The project launched in 2014 as the spiritual successor to esoTalk and FluxBB. Current stable version: v1.8.1, with v2.0 in beta.
NodeBB is a Node.js forum platform built for real-time interaction. It uses Socket.io for live updates, supports multiple database backends, and includes features like chat, notifications, and SSO out of the box. Current stable version: v4.9.1.
Installation Complexity
Flarum uses the community-maintained crazymax/flarum Docker image with MariaDB:
services:
flarum:
image: crazymax/flarum:1.8.1
restart: unless-stopped
ports:
- "8888:8000"
environment:
FLARUM_BASE_URL: "https://forum.example.com"
DB_HOST: db
DB_NAME: flarum
DB_USER: flarum
DB_PASSWORD: your-strong-password
volumes:
- flarum-data:/data
depends_on:
- db
db:
image: mariadb:11.7
restart: unless-stopped
environment:
MYSQL_DATABASE: flarum
MYSQL_USER: flarum
MYSQL_PASSWORD: your-strong-password
MYSQL_ROOT_PASSWORD: your-root-password
volumes:
- db-data:/var/lib/mysql
NodeBB uses its official image with MongoDB:
services:
nodebb:
image: ghcr.io/nodebb/nodebb:v4.9.1
restart: unless-stopped
ports:
- "4567:4567"
environment:
url: "https://forum.example.com"
database: mongo
mongo__host: mongo
mongo__port: "27017"
mongo__database: nodebb
volumes:
- nodebb-data:/usr/src/app/public/uploads
depends_on:
- mongo
mongo:
image: mongo:7.0
restart: unless-stopped
volumes:
- mongo-data:/data/db
Both are straightforward Docker setups. Flarum’s PHP stack is more familiar to traditional web developers. NodeBB’s dependency on MongoDB (or PostgreSQL/Redis) adds a heavier data layer.
Winner: Flarum. Simpler stack, lower resource requirements, faster initial setup.
Performance and Resource Usage
| Metric | Flarum | NodeBB |
|---|---|---|
| Idle RAM | ~150 MB (PHP-FPM + MariaDB) | ~300 MB (Node.js + MongoDB) |
| Page load (uncached) | ~200-400 ms | ~300-500 ms |
| Real-time support | Optional (Pusher extension) | Built-in (Socket.io) |
| Concurrent users (1 GB RAM) | ~200-500 | ~100-300 |
| Static asset handling | Nginx (bundled in Docker image) | Express.js |
Flarum’s PHP-FPM model handles concurrent requests efficiently with lower memory overhead. NodeBB’s Node.js event loop excels at real-time features but uses more baseline memory for the MongoDB connection pool and Socket.io.
Extension Ecosystems
Flarum has ~200 community-developed extensions covering tags, polls, reactions, SEO, Markdown, syntax highlighting, OAuth providers, and more. Extensions install via Composer. The ecosystem is active but smaller than traditional platforms like phpBB or Discourse.
NodeBB ships with more built-in features (chat, notifications, reputation system) and has ~100 plugins. Plugins install via the admin panel or npm. NodeBB’s plugin API is well-documented, and the official team maintains several key plugins.
| Extension Category | Flarum | NodeBB |
|---|---|---|
| SSO/OAuth | Extensions (multiple providers) | Built-in (Google, GitHub, Twitter) |
| Markdown | Extension | Built-in |
| Polls | Extension | Extension |
| Chat/messaging | Extension (limited) | Built-in |
| Reactions/likes | Extension | Built-in |
| Tags/categories | Extension (tags) | Built-in (categories + tags) |
| SEO | Extension (sitemap, meta) | Built-in sitemap + meta |
| Spam prevention | Extension (Akismet, StopForumSpam) | Built-in + extensions |
Community and Support
| Dimension | Flarum | NodeBB |
|---|---|---|
| GitHub stars | ~15,000 | ~14,000 |
| First release | 2015 | 2013 |
| Release cadence | Quarterly stable | Monthly patches |
| Documentation | Good, some gaps | Comprehensive |
| Forum | discuss.flarum.org | community.nodebb.org |
| Commercial support | No official | Yes (NodeBB Inc.) |
Both have active communities. NodeBB has the advantage of a company (NodeBB Inc.) backing development with paid support options. Flarum is community-driven with no commercial entity, which means slower progress on major features but complete independence.
Use Cases
Choose Flarum If…
- You want the lightest possible forum software
- Your community is discussion-focused (no need for real-time chat)
- You prefer PHP/Laravel and MySQL/MariaDB
- You’re running on limited hardware (512 MB RAM is workable)
- Clean, modern UI is a priority
- You want something that feels like a modern web app, not a traditional forum
Choose NodeBB If…
- Real-time features matter (live notifications, built-in chat)
- You need comprehensive moderation tools out of the box
- Your team runs Node.js and prefers that ecosystem
- You want commercial support as an option
- Built-in SSO/OAuth without extensions is important
- You need a reputation/karma system for community gamification
Final Verdict
Flarum is the better choice for communities that prioritize speed, simplicity, and a modern aesthetic. It’s lighter, faster to deploy, and feels more like a contemporary web app than a traditional forum. NodeBB wins on feature completeness — real-time updates, built-in chat, and SSO work without extensions. For a standard discussion forum, Flarum gets you running faster with fewer resources. For a community platform that needs chat, gamification, and enterprise SSO, NodeBB justifies the extra overhead.
FAQ
Can Flarum handle large communities (10,000+ users)?
Yes, with proper caching (Redis/Memcached) and a reverse proxy. Several communities run Flarum at scale. NodeBB also scales well but typically requires more server resources at similar user counts.
Does NodeBB support MySQL instead of MongoDB?
NodeBB supports PostgreSQL and Redis as database backends in addition to MongoDB. MySQL is not officially supported. PostgreSQL is the recommended alternative if you want to avoid MongoDB.
Is Flarum v2.0 stable enough for production?
As of March 2026, Flarum v2.0 is in beta (v2.0.0-beta.7). The stable release is v1.8.1. Stick with v1.8.x for production unless you’re comfortable testing beta software and can handle breaking changes in extensions.
Can I migrate between Flarum and NodeBB?
There’s no direct migration path between the two. You’d need to export data from one platform and write a custom import script for the other. Both support data export, but the schema differences make migration non-trivial.
Related
Get self-hosting tips in your inbox
Get the Docker Compose configs, hardware picks, and setup shortcuts we don't put in articles. Weekly. No spam.
Comments