Flarum

Forums made simple. Modern, fast, and free!

Extensible

Elegant UI

Mobile First

Stylable

Fast & Light

Secure

Trusted

Localised into many languages with 28 translation packs

english
polish
indonesian
french
ukrainian
Русский
italiano
עברית
bahasa melayu
spanish
română
sinhala
japanese
dutch
hungarian
hindi
tamil
finnish
bosnian language pack for flarum core and multiple extensions
greek
uzbekistan
vietnamese
slovak
azerbaijani
flarum lolcat
thai
korean
croatian

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.

UPC Switzerland

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

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

Flarum 1.2.0 Released

v1.2.0 - Quokka


An image of an Australian Quokka

📣 The Release


Yet another year has gone by, and another year has come, the Flarum team wishes a happy new year to all of you flarumites 🎉, and may 2022 be another exciting year for the project.
And with all the recent festivities, Flarum also comes bearing a gift! we are very happy to announce the release of Flarum v1.2 which contains more than 240 commits 🤯, made up of bug squashes, performance improvements, accessibility fixes, and some nice feature additions. With over 105 issues closed on the milestone, this is Flarum's second biggest release to date. Let's see some highlights:

👨‍💻 For Developers


Most extensions should be ready-to-go on Flarum 1.2 out of the box. If you're overriding component views, directly manipulating the DOM, or changing core behavior through service providers you might need to implement some minor changes in some areas, here are some key points:
  • For theming, we have now fully switched to using CSS custom properties. It is advised to declare your additional variables, especially colors as CSS custom properties and use them, for an easier transition to 2.0. Check out the pull request for more info.
  • The evented util is now deprecated (flarum/core#2547).
  • Pushing unregistered models to the store is now deprecated (flarum/core#3206).
  • Providing models as attributes to Model.pushData() or Model.pushAttributes() is deprecated (flarum/core#3249).

⤴️ 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 1.0 or 1.1 to 1.2, 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.2.0, and any errors to their fullest.

🙇‍♀️ 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:

🆘 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.

🔮 What now?


As with every new release, stay tuned for potential patch releases, we will also very soon release our brand new revamped roadmap for v2.0 🚀.
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
Dev Diary: Build 20
Here we go again 😉
v1.2.0 was just released, let's continue keeping you all in the loop about our progress as much as we can.
Dev Diary: Build 19
v1.1 was just released 🥳
Time for a new dev diary, with the hopes of making this a bit more active than the last one 👍️

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!