Flarum

Forums made simple. Modern, fast, and free!

Extensible

Elegant UI

Mobile First

Stylable

Fast & Light

Secure

Trusted

Localised into many languages with 39 translation packs

english
简体中文
german
polish
french
italian
turkish
indonesian
spanish
brazilian portuguese
ukrainian
română
sinhala
swedish for flarum
עברית
bahasa melayu
dutch
czech
vietnamese
japanese
正體中文語言包
hindi
finnish
tamil
greek
rusext
arabic
korean
slovak
serbian
uzbekistan
azerbaijani
thai
magyar fordítás
lithuanian
croatian
latvian
한국어
bangla

Showcase

DevNL

A perfect example of Flarum's customizability. This highly customised Dutch developer community has a unique layout, with beautiful elements like a custom loader. Created by the author of the popular SEO and Support Platform extensions.

giffgaff

As a leading British telephone network, giffgaff serves millions of customers. Through innovative use of Flarum, they've built up a passionate peer support community, improving support and engaging customers.

Sunrise UPC LLC

Leading provider of communication and entertainment in Switzerland. Their Flarum community creates a framework for healthy togetherness while supporting their customers with an appealing, user-friendly community experience.

Blog

Dev Diary: Build 22
v1.4.0 is out, this build targets v1.5.0.
Subscribe to this discussion for development updates 😉
Flarum v1.4.0 Released

v1.4.0 - Echidna


An image of an Australian Echidna

📣 The Release


We step into the summer 🌅 with another release. Version 1.4 follows within two months of 1.3 to tackle a wide range of bugs and improve extensibility. Many of these improvements are purely internal focused at core, but cascade into the ecosystem through bundled and community extensions.
  • 🔗 Rel and target attributes on links can now be modified using extensions (flarum/framework#3455)
  • 💦 Long topic titles in the notification dropdown don't overflow (flarum/framework#3500)
  • ⛔ Sub tags of tags a user has access to are visible even though the user has no access to those sub tags (flarum/framework#3419)
  • 🏷️ Without any tags required the tag modal would be forced on the user regardless (flarum/framework#3448)
  • 👮 Once a suspension is over the modal showing the suspension would still be shown (flarum/framework#3449)

👨‍💻 For Developers


All extensions compatible with Flarum 1.3 will work with 1.4. There was no need for an upgrade guide this time. If you receive any bug reports or have questions, feel free to hop onto our Discord into the #extend channel.

⤴️ Upgrading


❗Before you upgrade, make sure to create a backup of your public/assets directory, your composer.json and your database!
Before starting the upgrade process, ensure you are on Flarum 1.0.0 or above in your Admin Dashboard or by typing php flarum info. If you're not, use the previous release notes for upgrading from an earlier version.
To upgrade from a version 1 Flarum to version 1.4, take a look at our upgrade guide documentation. The process should be much easier compared to previous major version upgrades, due to the lack of breaking changes.
🆘 If you run into any issues, please open a new discussion under the Support tag. Ignore similar discussions, and open a new one anyhow. Make sure to mention the output of php flarum info, composer why-not flarum/core v1.4.0, and any errors to their fullest.

😇 Thanks to our Sponsors


Financial donations keep Flarum alive and kicking. The following companies and people deserve credit for making Flarum sustainable:
Thanks for being awesome 😍 !

🙇‍♀️ Acknowledgements


Flarum wouldn't be the same without our over one hundred contributors, along with their generous time commitments! For this release we specifically thank these wonderful people:
  • The non-team contributors that usually tackle unplanned, but extremely welcomed bugs or overhauls. We absolutely love contributions that help us move forward, so thank you very much:
    @iPurpl3x, @hason, flawedworld
  • The core and staff team contributors, people that have vast knowledge of the code base who sacrifice their free time to bring the awesome Flarum software to you, for free. Thank you so much:
    @askvortsov @SychO @davwheat @datitisev @luceos @ianm @clarkwinkelmann
  • The community staff is the foundation to a warm and welcoming community. Many cheers for all you do:
    @jordanjay29 @Prosperous @GreXXL
  • The well oiled machine that is the translation team, keeping up with new languages, their maintainers and the translations perfectly well. Very, very much appreciated:
    @GreXXL @Justoverclock @rob006
  • A great shout out to everyone who's submitted carefully described issues and suggestions, especially @matteocontrini, @ornanovitch and @Valeyard !
  • And the whole community sharing their passion for Flarum, urging us on!

🆘 Support the Project


We need your support to:
  • Guarantee continued development on the software.
  • Create a valuable ecosystem around the project.
  • Ensure healthy extensions are available.
You can support us:
  • 👕 By getting some swag from our merchandise store!
  • 💵 By backing us on Open Collective or on GitHub.
  • 👩‍💻 By contributing to the source code, hop onto any of our open issues.
  • 📈 By creating your own Flarum extensions and sharing them with the world!
  • 🌎 By translating Flarum and extensions into your own language.
  • 💝 By sharing your love for Flarum with friends, family and on the internet.
  • 💬 By hanging out with us, here on discuss!
If you're looking to get coding, make sure to check out our documentation.
Flarum v1 Release Announcements
This discussion acts as a way for people to subscribe to announcements on releases. Before stable we would announce releases as separate discussions, because all changes were bundled and released as one beta.
Having passed that milestone we have already released several patch releases for v1.0. These releases were announced either in the v1.0 release announcement or in the Dev Diary. We felt this is not the right place.
From now on we will announce ALL releases, no matter the size, in this discussion. 🔔 So make sure to follow.
  • ⏰ Releases for Flarum and all bundled extensions are announced here and/or linked to.
  • 🔇 Comments are disabled. Please open a discussion for feedback or support.
Previous Release Announcements
Flarum CLI v1.0

Flarum CLI

oclif Version Downloads/week License
A CLI for developing Flarum extensions.


📣 The Announcement

Supporting our extension ecosystem in building even more awesome extensions, is something we firmly believe in. As such @askvortsov has been hammering away at this project (RFC: Flarum CLI Alpha, Flarum CLI Dev Diary), setting up a solid foundation for it to create a powerful tool for extension development that would help developers by automating some repetitive and menial tasks, and allow them to get into the actual work without much hassle.
Today, we're very excited to announce the 1.0 version of this tool, it comes with a range of commands to assist you along the way.

📥 Installation

Using npm simply run the following command to install the CLI globally.
If you have the alpha version installed, remove it first:
$ npm uninstall -g flarum-cli
Now install the new package:
$ npm install -g @flarum/cli
To run a command, use either flarum-cli or fl:
$ flarum-cli COMMAND
$ fl COMMAND
To see a list of available commands, run either of:
$ flarum-cli
$ flarum-cli --help

⬆️ Updating

$ npm update -g @flarum/cli

🌟 Highlights

The CLI has different types of commands for different tasks:
Initialisation
  • flarum-cli init [PATH]: Generates a blank extension skeleton, including all recommended infrastructure.
Infrastructure
  • flarum-cli infra backend-testing [PATH]: Adds (or updates) infrastructure for running automated backend tests.
Backend Boilerplate Generation: Generates different types of backend classes and/or extenders, ready to be used.
  • flarum-cli make backend api-controller [PATH]
  • flarum-cli make backend api-serializer [PATH]
  • flarum-cli make backend api-serializer-attributes [PATH]
  • flarum-cli make backend command [PATH]
  • flarum-cli make backend event-listener [PATH]
  • flarum-cli make backend handler [PATH]
  • flarum-cli make backend integration-test [PATH]
  • flarum-cli make backend job [PATH]
  • flarum-cli make backend migration [PATH]
  • flarum-cli make backend model [PATH]
  • flarum-cli make backend policy [PATH]
  • flarum-cli make backend repository [PATH]
  • flarum-cli make backend route [PATH]
  • flarum-cli make backend service-provider [PATH]
  • flarum-cli make backend validator [PATH]
Frontend Boilerplate Generation: Generate frontend components/classes, ready to be used.
  • flarum-cli make frontend component [PATH]
  • flarum-cli make frontend modal [PATH]
  • flarum-cli make frontend model [PATH]
Code Updates:
  • flarum-cli update js-imports [PATH]: Adds admin/forum/common namespaces to all JS imports from flarum core.
And of course, you can always use the help command to see a list of all available commands with their descriptions:
  • flarum-cli help [COMMAND]

🔥 The Most Powerful Commands

Of all the aforementioned commands, the two most powerful ones that will make a huge difference, are the extension initialisation command and the backend model generation command. The former obviously allows to kickstart the extension with the recommended skeleton from the Core Dev team, while the latter not only creates the backend model, it allows to create all the classes related to the model, from just its name:
  • Table migration
  • Policy
  • API Serializer
  • CRUD API Controllers
  • CRUD Handlers
  • Repository
  • Validator
  • Routes
  • Related Extenders

terminal_example
example_project_with_model_command

🧑‍🏭 Support & Feedback

If you encounter any problems while using the CLI, or would like to propose additional features/commands, please open an issue in the github repository.
Any and all feedback is appreciated.

Links

Edition 3/22 - Community Update

📖 Introduction

Welcome to our newest community update. In this edition we want to take a closer look on how to bring your Flarum community to the next level. Also - like you are already used to - we will share interesting updates on the Flarum ecosystem, including the newest plugin additions. In Edition 2 of our community updates 2022 we have been looking at options to improve the performance of your Flarum installation - feel free to skip back to this post in case you are interested. But now lets move on to our newest update.

The big FreeFlarum Interview with @SKevo and @Sanguine

FreeFlarum is undoubtedly the number 1 source to quickly get started with Flarum. Today we want to take a closer look behind the doors and behind the people that make this service possible.
FreeFlarum is a great contribution to the Flarum ecosystem. What's the 'mission statement' for the service?
@SKevo (As I mentioned) I wasn't there from the very beginning, but FreeFlarum's main idea is to provide a starting point for new communities. It can be hard to get a Flarum forum up and running for unskilled users that are unfamiliar with Linux-like OS-es. Thus, FreeFlarum was created - an automated, free service to aid you with the creation of your forum in a matter of minutes. And when your forum becomes too big for us, you can download all of your data and migrate to a self-hosted alternative very easily. I think it works pretty well and people like it so far!
@Sanguine We help you to launch - and own - your forum. Don't depend on big companies to communicate with your friends. Beautiful forum software should be available to anyone.
How many forums does FreeFlarum currently host?
@SKevo Currently at around 2 000 forums are online at FreeFlarum. The peak is at around 2 700, and at that point we run a custom script to automatically archive unused forums to save disk space. These forums are then kept for around 1 - 2 months, available for reactivation.
@Sanguine Since 2017, more than 20 thousand people have launched a forum with us, and almost half a million messages have been written. People from 172 countries are using FreeFlarum! It's truly mindblowing...
Top countries are the US, China, UK, India, Turkey, Russia.
What does this mean in numbers (necessary to cover those communities)?
@SKevo 70 GB of disk space on 8 GB RAM Hetzner server located in Germany. And some spare hours to help with support, server maintenance, etc...
Can you please introduce yourself @Sanguine and @SKevo and your role with FreeFlarum?

@SKevo I am a young guy from Slovakia. I like software and computer stuff in general. I do programming just as a hobby
(I self-learned 90 % of it) and my main field of study is actually economics and accounting.

As for my role at FreeFlarum, at the very beginning, I found out that it had a GitHub page with documentation. I forked the repository and made some pull requests, documenting FreeFlarum and later a couple of Flarum's extensions. Sanguine noticed me and decided to give me collaborator rights. I want to thank him for this amazing opportunity - not everyone is so kind! It's amazing what we've accomplished together.
Anyways, I eventually have proven myself and got access to SSH. The beginning was rough because I haven't used or even touched anything Linux related before! Sanguine told me how some of the important stuff works in his spare time, but I have learned a lot by just experimenting and Googling. I can't believe how I am now doing stuff that I haven't heard of before 2 - 3 years on a daily basis now!
@Sanguine I am a 42 yo programmer from the Netherlands. When my first kid was born in 2017, it was a stressful time, we spent months in the hospital. To distract myself a bit, I started a forum for people living on boats (as I do). I fell in love with the beauty of Flarum, but also noticed that it took some effort to get Flarum up and running, and many people were struggling with it. Eventually my houseboat forum failed miserably 😆 but I decided to help others and launch a Flarum-as-you-go service.
How much time does it take (per week) to keep running FreeFlarum so smoothly?
@SKevo We try to automate as much as possible so that we can have more time to do other things that take priority in our lives. I'd say that FreeFlarum is pretty self-sustainable and stable. The only things that need our attention are E-mails, posts at Discuss and occasional server maintenance (cleaning up inactive forums, for example). I don't have any timetable - when an E-mail arrives, I read it, connect to SSH on my mobile and fix it, if I can. If I can't do it via mobile at that moment, I'll wait until I am able to resolve it through my computer.
Back to the original question, the time really varies. Sometimes replying to an E-mail is enough and takes about 5 minutes, sometimes you need to have a closer look at some problem a certain forum is having and it can take you 1 hour, and when you upgrade all forums to a new Flarum version, it can even take you 2 hours (you need to do all the backups, ensure that things are working as intended, notify users here at Discuss, etc...). But as for a person that enjoys this, I am not complaining.
How much effort did you invest initially to make this service launch?
@SKevo I believe that Sanguine can answer this, as I wasn't there yet so this isn't very relevant to me. From what I know, he found the process of setting up Flarum relatively difficult for non-Linux admins, so he wanted to make it simpler for people. I am sure that it was a tough job to seamlessly integrate everything together from scratch and he'll always have my huge respect for his incredible effort.
@Sanguine It was about 2 months of programming (while my baby was napping) to build the core service and fix all the corner cases. The goal was to serve all forums from a single forum install, otherwise maintenance would quickly become a nightmare. To accomplish this, FreeFlarum uses some Linux voodoo under the hood, which keeps everything fast & secure.
But credits due: most of the later features were written over the years by the great SKevo. He's truly a pleasure to work with, and a treasure trove of enthusiasm and great ideas.
With the time and money needed to keep FreeFlarum afloat, how do you find the motivation to keep it running?
@SKevo My main motivation is that I like to help people and learn new things. We don't do it for the money, but for the people. The only income is from donations which we split between us when all expenses are paid. It's a big responsibility to run a service like this, sure, but it feels really great to be a part of something big and to make people happy.
Obviously you have chosen Flarum as a platform. Why did you choose this over other community software?
@SKevo I'd say that the modern, responsive design and simplicity wins over other forum frameworks. Some of the other competitors look really dated in comparison to Flarum. Forums have been around for quite some time and reach back to the days of old internet, but Flarum really proves that you can make a forum software that is both simple and pleasant on eyes. It just works, and I am happy that it does, because none of this wouldn't be possible otherwise. Plus, the extensions are just perfect if you lack some feature and the community is very helpful.
@Sanguine I liked Flarum because of its interface and its beauty in simplicity. It may seem easy, but I find it is actually really hard to create simple software. I also liked the vibe and culture in the Flarum community a lot. I have a lot of respect for all those people who are the driving force behind Flarum every day.
Can you describe to our community members how you have automated the creation / management of Flarum forums?
@SKevo We use fancy Python magic (that's the programming language that FreeFlarum uses). It's easy to learn & write and great for automating boring tasks (like forum creation). It can sometimes be tricky to glue all the different components together by using just Python (Flarum is written in a different language - PHP), however the end results are worth it!
For the rest, we use a set of Python scripts to further automate things like SSL certificate renewal and listing forums daily, which we automate via Cron.
You are allowing a large number of extensions on your platform. How is your experience with the extension system of Flarum?
@SKevo Some time ago, it caused problems when two extension were incompatible and they could even brick someone's forum (we then had to manually intervene and disable problematic extensions for the forum). But luckily, the stable Flarum release really improved this and it hardly happens nowadays.
Overall, I am pretty satisfied with it right now. Extension developers can create some really wonderful extensions that change the face of Flarum itself, and that really gets me excited for what comes next!
From a perspective as a large Flarum host - what are the features that you are missing the most?
@SKevo I can't think of many. Maybe just a bigger server for more forums to host, but perhaps that'll happen in the future...
From a user perspective are there any wishes that you would like to add?
@SKevo I know that a lot of people would like to host larger forums, and they get upset when they find out about our 250 user limit in the Terms. This information is not very relevant anymore, as we have forums with more users that are fine. It comes from the FreeFlarum documentation, which is a bit outdated now. If I were an user, I'd want to have it improved. Hopefully I will finally have the time and passion to sit down and overhaul it very soon to prevent common misunderstandings. However, remember that there will still need to be a limit, as we are a free service and can't afford to host the next Facebook 😃
@Sanguine We don't miss any features in Flarum - the extension ecosystem is great! Our users frequently request extensions, and most of them get installed.
If you look to the future - what are the next steps for FreeFlarum? Are there any changes (or new services) planned?
@SKevo From my side, yes to improvements. Last summer, we have improved the code base a lot. New features were added (such as forum directory, public API and a new page design), but that was still back when I wasn't that great at Python. This year, I am planning to improve it even further to make FreeFlarum more faster, stable, extensible and enjoyable for everyone. I hope that things go well and that we can make forum management even easier by September.
As for new services, I haven't forgot about my Flarum migrations project. I will look at that too, but FreeFlarum has a bigger priority for me at the moment.
@Sanguine We don't have a specific schedule, but my long-time dream would be to offer a localized FreeFlarum service to specific countries that suffer from rigid censorship. For example, many of our users are from China. Our current service is operated from Germany, which is good for privacy but can be slow to Chinese users. Perhaps we can offer a translated service to Chinese users from Singapore or Japan.
As a final question: What can anyone do to support FreeFlarum remaining available for a long time?
@SKevo FreeFlarum is paid entirely from the wonderful donations of our users, and I want to thank you for that - it wouldn't be possible without you, people! I personally don't plan to stop anytime soon, and I hope that FreeFlarum will remain and improve for many more years to come.
@Sanguine Some feedback or a small donation to cover our costs is always much appreciated. But most of all, happy users make us happy!
A warm thank you to both of you for being available for this interview. It's most interesting to learn more about such an important part of the Flarum ecosystem. I hope the readers have enjoyed this interview as much as I did! As a last note I want to thank @Sanguine his long lasting commitment, after recently handing this project over to @SKevo.
Important Links: FreeFlarum | Discussion / Support

📰 Other News

🕵️ Flarum on HackerNews

Flarum was recently featured in an HackerNews article - that you can finde below if you are interested!

🕸️ Extension Highlights

New & Noteworthy

Open Source Extensions


🏁 Final words

We hope you have liked this edition of “Community Updates”. Looking forward to your comments and ideas for future updates. We are going to pickup speed again and hope to see you soon on the next edition of Community Updates.

Developers

Extend

Learn how to harness the extensibility of Flarum to create your own extensions and customize your community.

EXTEND

Contribute

Help us make Flarum even more powerful and customizable! Every bug report, pull request, and documentation improvement is a huge help.

CONTRIBUTE

Built with the best tools

Have you ever changed tires with a spoon? Using the right tools for the job is key to success. We thank our technology partners for their generous product donations!