Link Robins Blog — Ghost-style blog with a built-in newsletter
A standalone blog extension for Flarum. Posts and categories live in their own tables, comments are real Flarum discussions, and there's a built-in newsletter that broadcasts over your existing SMTP.
If you've ever wanted a "Ghost on top of Flarum" — separate blog reading experience, but moderation and comments stay inside Flarum — this is that.
Run it as /blog or homepage:

What it does
Reader layout
/blog — hero, featured post, grid of recent posts, pagination
/article/{date}-{slug} — centered reading column, cover image with optional credit, body, comments, "Read more" recommendations
/category/{slug} — same layout filtered to one category
- Theme-aware: picks up your forum's primary color
Member-only posts
Mark a post members and guests see the excerpt + a login-wall card. Search engines see the excerpt. Optionally gate per-group rather than "all members."
Comments are real Flarum discussions
This is the part that took the most thinking. Every blog post gets a normal Flarum discussion behind the scenes. The comments below the article are posts in that discussion. So:
- Edit, delete, flag, hide, restore, mentions, likes, notifications, search — all of Flarum's moderation works out of the box
- Permissions, throttling, BBCode/Markdown — whatever you've already configured applies
- The discussion is hidden from
/all and other listings, but fully reachable by direct link and by the API
- The first post is an auto-generated "bookmark card" linking back to the article
There is no shadow comment system. If you can moderate forum discussions, you can moderate blog comments.
Newsletter (built in, not a third-party hand-off)
- Star button at the top of the blog sidebar — one-click subscribe for logged-in users, mobile-friendly icon
- "Send newsletter" button on the post editor — broadcasts via Flarum's existing SMTP settings
- HTML and plain-text email templates with cover image, title, excerpt, CTA, footer
- Per-recipient
List-Unsubscribe header so Gmail/Apple Mail show their built-in unsubscribe button
- Token-based public unsubscribe page that works without login
- Admin "Subscribers" tab with live count and CSV export
broadcast_sent_at guard prevents accidental double-sends; explicit "Re-send" requires confirmation
Admin
- Custom HTML widget for arbitrary sidebar content
- Configurable hero header per blog (text, forum logo, or background image with overlay)
Honest caveats
On the newsletter: the code sends mail correctly. Whether those mails arrive in inboxes vs spam depends on your sending domain. If you don't have SPF, DKIM, and DMARC set up on your domain, Gmail in particular will spam-folder your broadcasts. That's not something this extension can fix — it's a domain-config thing. Mail-tester.com gives a free score.
On the queue: Flarum's default queue driver is sync, which runs the broadcast inline in the admin's HTTP request. Fine for small lists. If you have more than 50 subscribers, switch to database or redis queue or your browser will time out before the send finishes.
On comments as discussions: this is a deliberate design choice, not a bug. Some folks expect a separate comment system. If you'd rather have isolated comments that don't appear anywhere in Flarum's discussion model, this extension isn't for you.
Install
composer require linkrobins/blog
php flarum migrate
php flarum cache:clear
Enable from the admin extensions panel.
License
MIT.
Source
Feedback, issues, and PRs welcome.
Screenshots:








