|

Flarum Forum Software

flarum forum software

Flarum Forum Software is a really cool open source project that makes Forums fun again. One look at the official website, and you’ll know this is a project to keep your eyes on. The design is really slick, with an attention grabbing Ubuntu like orange color with easy on the eyes color palette choices. Flarum is the creation of software developers Toby Zerner and Franz Liedke. Their take on forum software is that it is ready for a new take with a fresh start. Judging from the initial versions of the software, it looks like they are right on track. Let’s check out a little bit more about Flarum Forum Software now.


Flarum Has Experienced Developers

The Core Team of Flarum is made up of Toby Zerner, Franz Liedke, Dominion, and DaniĆ«l Klabbers. With their combination of skills in modern development, along with past experience creating and maintaining popular open source forum software such as esoTalk and FluxBB, you can be confident that this project has experience on it’s side.


The Goals of Flarum

  • Keep It Simple

  • Keep It Fun

  • Keep It Free!


Flarum Uses Familiar Technology

Flarum makes use of all of the most modern techniques for developing web based applications. The finished product makes it entirely pleasurable to participate in a forum whether it be on your desktop PC or Macbook, a Samsung tablet, iPad, or any of the modern hand held devices. When developers build the open web, like it should be, we find ourselves in a situation where we can say, “We don’t need no stinkin’ apps!” Now when we say apps here, it is referring to the walled garden variety found in places like the Apple Store, Android Market, or Google Play. The web is best when it is free and open, unrestrained by the walled gardens of corporate machines. Flarum uses PHP 5.5+, MySQL 5.5+, Modern CSS in Less, and JavaScript in the form of the Mithril JavaScript Framework. On top of this, Flarum uses Composer to handle all of the dependencies and configuration grunt work, which is very nice.


Flarum Is Packed To The Gills With Powerful Features

  • Touch-Optimized

    Flarum is fully responsive right out of the box, not an add on after the fact. The slick user interface has been optimized for touch devices by way of big buttons, friendly animations, and easy on the eyes color palettes.

  • Fast & Lightweight

    Flarum is lightning quick, with no extra bloat in the codebase. The developers have chosen Mithril as the JavaScript engine, which has one of the smallest footprints in it’s class.

  • Easy Installation

    If you’ve ever installed WordPress, you have enough skill to install Flarum. Fill out a few fields, then click Install. Now go grab a beer, or coffee if you like.

  • Extensible Architecture

    A great feature is that even though Flarum is build with a next generation framework like Laravel, it has a plugin or extensible based architecture. This allows you to extend the platform with thing like BBCode, Emoji, Likes, Markdown, Mentions, Pusher integration, and much more.

  • Themeable

    When you choose an open source platform to power your web application, it is always nice to add your own look. It’s no wonder the Themes business is so massive. Flarum makes it super easy to customize how everything looks with color scheming, and Less preprocessing, which makes large sweeping changes easy.

  • Notifications

    If you like to use social networks like Google Plus, Twitter, or Facebook, then you are used to friendly notifications that alert you of an update, mention, or like. Flarum has notification features baked right in.

  • Tags

    Tags are one of the best ways to organize large collections of data with ease. Organize your discussions easily in Flarum with tags.

  • Replies & Mentions

    In addition to the old school forum reply we have all come to be familiar with, in Flarum you can also post mentions to help discussions have an even better flow.

  • Powerful Permissions

    Permission control is often tricky to implement on your own. Flarum has permissions on a granular scale, allowing you to decide who can view the forum, discussions, sign up, rename discussions, and so on. You can even assign permissions on a tag level, for the highest control.

  • Convenient Search

    Rule number one with a discussion forum is to search first before you make a new post. Someone else may have already covered your topic. Flarum has search built in so you can find relevant posts, users, and discussions quickly.

  • Real-Time Discussion

    Level Up your discussions with awesome real time interaction via Pusher. See new posts and discussions appear on the page in real time as they happen, so cool!

  • Search Engine Optimization

    Flarum makes use of JavaScript and Mithril to provide much of the slick front end so user friendly. A drawback to this type of application is that you may leave search engines having difficulty indexing your site well. Flarum optimizes content via noscript tags so you will still get the benefit of SEO when growing your community.

  • Localization

    You say Tomato, I say Potato. Speaking different languages is not a problem thanks to Localization and translation.

  • Moderation Tools

    Need to pin an important discussion? Block a user? Lock a discussion? You can do all of the needed administrative tasks via build in moderation tools.

  • Powerful Formatting

    Flarum has an awesome live preview system with support for BBCode, Markdown, and Emoji, so you can see your message before you hit publish.

To be fair, at the time of this writing, this is what is available now. Coming soon will be more incredible features such as single sign on, WordPress Integration, Extension Marketplace, Forum Import tools, Reputation and Award system, statistics, private discussions, and much more. This looks to be very exciting!


Using Flarum To Learn

Here at Vegibit, we have a focus on quality tutorials in Web Development covering everything from basic HTML and CSS, all the way to PHP, JavaScript, and full stack frameworks. One of the best ways to learn, is to take something apart to see how it works. Flarum is open source, and freely available on Github. Have a look through the JavaScript, Mithril, PHP, and Laravel code to see how everything works. Once you get good enough, you may even want to try contributing or building an extension for the project. In looking at the code, we can see it makes good use of all of the modern object oriented practices such as dependency inversion, interface segregation, liskov substitution, open closed, and single responsibility.


Laravel Powered

Laravel is the most popular PHP framework today. The creators leverage Laravel in a slimmed down approach so to speak. One discussion on the community explains it quite well.

  • Flarum’s core package is built on some of Laravel’s components (each in version 5.0 currently) – most notably, the database component, so that we can use Eloquent.
  • For other Laravel components, we try to only couple ourselves to the interfaces in the illuminate/contracts repository.
  • Our standalone app (the flarum/flarum repository) then requires some of the other Laravel components for concrete implementations of these contracts. It does take some shortcuts to boost performance, though, so it’s not a full Laravel installation.
  • This structure means that you will be able to integrate Flarum in an existing Laravel app by requiring the flarum/core package (and maybe another integration package) and loading some service providers.

Franz

This is a neat approach, and in fact it does not only apply to Laravel. Flarum also makes use of Symfony and Zend Framework components as well. It seems the developers are choosing the best of the best to integrate into Flarum. Reading the documentation is a good place to start to understand how it all fits together, and the meaning of Core, Bundled Extensions, and Third Party Extensions.


Mithril JS Powered

Flarum also makes use of Mithril, a highly performant JavaScript framework. Rather than React or Angular, Mithril is chosen for the ultra small footprint, small API, MVC architecture, Virtual DOM diffing, and again, high performance. In reading about the Mithril framework, it appears to be very modern and makes efforts to build an easier to reason about environment by learning from patterns that come from jQuery, Backbone, Angular, Ember, React, Knockout, and Vue. Of all these tools, Mithril is probably most closely related to React. Mithril and React share the same architecture type, in that they both make use of a virtual DOM. Why a Virtual DOM? The practice of using a Virtual DOM comes from seeing the DOM operations themselves as the bottleneck for performance. In a virtual DOM system, the software keeps track of changes between the Virtual and the Actual, and only updates the real DOM on an as needed basis – rather than entire redraws. It does makes sense, but I feel it has a steeper learning curve. If performance is your goal, it may be a learning curve worth tackling however. There are some differences between React and Mithril. With React, you use the JSX syntax – which does not run in the browser, they must be compiled first. An uncompiled Mithril template will run just fine in any browser. In addition, upon compilation, React will have a function call for every virtual DOM element which adds overhead. Mithril compiles down to static JavaScript data structures – which are highly performant.

Flarum Forum Software Summary

Flarum is definitely one of the open source projects to keep your eyes on. In my eyes, it is striving to be easy to use for new comers and non technical people – which is critical to overall adoption. At the same time, when you dig into the source code and design philosophies powering Flarum, it is clear that the developers are making use of the best of the best of what is available in open source today. This keeps us tech junkies happy as well. It’s a win win for all. Go check out Flarum today!