Home » forum

Tag: forum

Community Software: FLARUM

My latest insight is that you grow faster, and it’s more fun (and challenging) when you have a community!

Because of that insight, I am consciously looking at how other people are building their communities, and, being the software nerd that I am, my attention goes to online communities. 

A new player around the block is making some noise when it comes to community software. And that is Flarum.

Here is the promise:

“Forums made simple. Modern, fast, and free!”

I have spent a couple of days taking this forum for a spin and testing out this promise. The short version is that I am impressed. 

Let’s break this down in a post that will be somewhat technical. 

Forums Made Simple

Forums made simple” – I believe they fulfill this promise. The team behind Flarum chose to focus on what makes a forum a forum: the ability for users to create discussions and respond to each other. And that works beautifully well. However, to have great software, you can’t stop there. Otherwise, anyone who can follow a Larcast could roll out their forum in Laravel. The team made the forum simple and provided a scaffold and a framework so you can then make it as complicated as you need! 

Modern

Modern” – This promise is also kept. There are two sides to this “modern” feature. 

First is the end-user: do they perceive it as modern? And I would give them a “yes” just by looking at the mobile experience. I don’t want to say that it is beautiful because that is too subjective. Instead, I would say the user experience is great: it works, and it works as you would expect it to work. Of course, any old software can hire a designer and create a “modern theme/look” for their forum, but that is only one part of it.

The other part of “modern” is the internal workings of the forum. And you would need to be a developer to appreciate the beauty of Flarum truly. The internals might be something that the end-users or community managers might not care about. Still, it will be important for the person in charge of maintaining the software on the server. 

To highlight a couple of things:

  • Using `composer` to manage the upgrades and the extensions – brilliant! I have not seen this done before in a forum context, but it is such a clean way to reuse code. It is different from what WordPress is doing, where every plugin has to install its dependencies, and you end up with loads of duplicate code and potential conflict that is sometimes very hard to spot and fix. While using composer makes me happy, I am also concerned with the possible problems that may show up in the future and that we cannot possibly see right now. 
  • Making this a Single Page Application. The front end is now a JavaScript client that consumes the API that the forum exposes. This pattern opens up a ton of flexibility on how this platform can be used – including completely replacing the front end if you are brave enough. The only issue that I see is potentially some SEO problems that plague all SPAs. 

Fast

 “Fast” – another kept promise. The lighting fast page loads were the very first thing I noticed about this software. It feels so snappy! Aven the search function feels fast. The high-performance is another result of the internals, and so it’s not something that older software can pull off just by “modernizing their look and feel.”

Free

“Free” – this is technically free… with a big “BUT.” 

To install Flarum, you need to run commands in your shell. And if you have no idea what that is, that is where the “Free” problem starts!

The power and performance of Flarum come at a cost. At the time of writing, you need to be pretty nerdy to install it and feel comfortable about it. Sure, you can copy/paste the commands in the tutorial, but if you don’t understand what you are doing, any tiny problem can be a game stopper for you. So even though the forum is free to install and use, you might have to pay for an installation service (that the Flarum team might provide in the future), and you also need to buy hosting where you can use the shell and the PHP composer software. 

All of this makes me think that Flarum might be best for companies that can hire such a developer and purchase a server with the required specs. 

And speaking of companies, this leads me into another potential trap of “Free,” and that is: you don’t want to build a community using software that will not be there for you in the long run. And if nobody is paying to help the software grow and have the bugs fixed, how long will Flarum be around? For a company, this is a risk that needs to be evaluated, and it can make a managed/established solution look much better in the long run, especially because it is not free.

I see the team behind Flarum making steps towards launching a managed solution, which will provide a stream of income and invaluable feedback on making the software better. And they may also establish a service of paid support that can provide additional incentive to keep this project going. 

Until there are some clear signs that Flarum is here to say, I believe it would be risky to build your community around it if you want to play a long-term game. But if you need to launch a project quickly that requires a community around it, you should give Flarum a try! 

The Competition

Flarum reminds me a lot about Vanilla Forums, and I believe that if they play their cards right, they could become their main competitor. 

You can get all of Flarum for free (if you have tech chops to install and manage it), while Vanilla OSS is very limited compared to the cloud option.

Choosing a software platform for a Spiritual Community

Building your community on the wrong platform is very costly. So it pays to do some research and make an informed decision.

This post aims to create a comprehensive list of items to consider when you shop around for a software platform for a spiritual community. 

The Specific Needs of a Spiritual Community

Apart from the generic online community requirements, a spiritual community has a few specific characteristics:

  • It needs to provide a space for in-depth communication and exploration. This means a clear, distraction-free interface. It should allow composing long essays if needed and have text formatting capabilities to help with the longer posts’ readability. In other words, it needs to encourage deep thought and make it easy to express that.
  • It needs a good way to track and come back to a discussion maybe months later if there are new insights or new posts on that topic.
  • It needs to be beautiful – while this is a very subjective criterion, you can look for good design, harmonious color palettes that make the pages aesthetically pleasing.
  •  The interface needs to be user-friendly. As intuitive as possible, with a straightforward mobile design and no jarring or unexpected changes or updates. 
  • It should allow for more detailed profile pages for the members. On that page, individuals can show their personality, interests, and story and connect with other members one-on-one.
  • Take into account the privacy concerns: who is ultimately the owner of the data shared by your members. (Hint: if you use a social network for this, the network is the owner)
  • The technology providers that enable the community need to be integrity.

With that in mind – let’s jump to the list of requirements.

Comprehensive list of requirements for a Spiritual Community Software Platform

Since the list is so long, I have divided it further into subsections.

 

Business Requirements

  1.  Support for paid membership – not only does this keep out trolls and energy vampires, but it provides a way for the members to support the community back and make it sustainable.
  2.  Basic Content Management System – allows you to create public pages that explain what your community is about. These can be very focused landing pages or a blog.
  3. Privacy concerns – do you care who stores and who owns the data that your users create? There are three camps here: self-hosted solution: you store, and you own everything. Hosted solution: the platform provider stores the data, but you own it. And social media: they store it, and they own it, and you are a guest there. The choice here is straightforward: if you have an able developer on your team, then self-hosted makes sense because you will handle any maintenance in house. If not, go with a hosted solution. If you go with self-hosted and don’t have a developer, the maintenance costs are likely to burry you. 
  4. Does it have an API for integrations – this is optional for more basic communities but a must-have for larger ones that will require more automation to manage. An API allows you to extend what the platform can do by integrating it with other services like email automation, learning management systems, automatic zoom call registrations, etc. Think Zapier. 
  5. Server Requirements – if you buy a self-hosted platform, then you’d better have a tech person in your team who can figure this out. Else you might buy something that you cannot use, or the server’s costs required to run it are too high for you.
  6. What is the maintenance cost – if you have to hire a developer to maintain the platform, that will quickly become your highest cost. Keep this in mind if you are contemplating a free, self-hosted community software. It can get you started with no fees up-front, but when you need help (and you will!), it will be challenging to find someone trustworthy and pay them to update the software or fix the problem. Because of this, I now recommend to anyone who is non-technical to choose a paid hosted solution, where someone else keeps things running smoothly. Maintenance and free vs. paid is a complicated discussion; drop me a line if you’d like to hop on a call. 
  7. Can you do backup easily (or export the content) – if you plan to build a business around this community, backups are the best insurance policy against data loss or hacking. Even with hosted services, those who claim they have “internal backups” do not trust that. Ask how you can do your own backups that you can save on your computer. I cannot stress how important this is in the case of a business. It also prevents “lock-in” to that specific platform. Content that you can export, you can later import elsewhere with some help. 
  8. Google Analytics Integration – as a business, you need to track what works and what doesn’t. The platform may offer its Analytics tools, but that may not be enough.

 

User Experience

  1. Web Push Notifications – this is a technical term that simply means getting notified on your phone or your computer browser that there are updates in the community. It is not a must-have, but it helps with engagement and real-time events where it is important to be there on time.
  2. Easy Registration with Facebook or Google – this goes to the user experience side of things. If they can log in with an already existing account, it means one less password to remember. This choice does create some privacy issues if you connect via a third party provided (like Facebook or Google), but that may not be important to some of your users. You should always keep the alternative of a simple direct sign-up.
  3. Accessibility – can people with disabilities use the platform effectively? 
  4. Bookmark system – allows users to save in their profile posts or other locations of interest.
  5. How is the onboarding experience – can you direct users at first login to a particular page with tutorials? Is there a good help system? Are there pointers around the interface to help the new users find their way around? This feature is more of a “premium” option, but it could help members move from trial to paid.
  6. Notification Center; do you need Facebook like notifications in the top-right corner? They enable your membership to stay on top of important updates.
  7. Rich text editor for posts – specifically for spiritual communities, to allow for long and thoughtful responses. You should also be able to quote or partially quote a previous post that you are responding to.
  8. Does it work on Mobile – this is a must. The platform needs to be optimized for Mobile, not just “barely work.” At the moment of writing, in the communities I have access to, 60% of users are from Mobile, and that number will continue to grow.
  9. Dedicated Mobile App – you don’t need to worry about this unless the performance is an issue or mobile notifications, or you have a need to integrate with the device sensors to create some kind of customized experience, like a meditation space or mindfulness reminders. This feature is highly advanced and not something most communities care about. 

 

Community Building

  1. Private Messages – allows for one-on-one exchanges between members who want to connect and share details that would not make sense to post in the open community.
  2. Profile Pages for users – this would be the user’s personal space inside the community to showcase their interest and make connections with other individuals. As a bonus, this page can also list the person’s activity for anyone interested to find their posts and updates.
  3. Activity Feeds – they provide a quick look at what is currently happening on the platform. 
  4. Media upload support for images, audio, and possibly video – sometimes a picture says it best. So the platform should be able to handle media uploads as smoothly as possible. I would be cautious with video uploads, as they use up both disk space and bandwidth. (Depending on your needs, it may be best to share video via unlisted YouTube links).
  5. Calendar – useful to help the community stay in sync with regular updates or live calls. Make sure it works well on mobile devices too.
  6. Moderation tools – you need to issue warnings and eventually remove bad actors from the community. Moderation tools are a must. And anything except tiny communities needs to have a “report” button that alerts the staff that needs attention. 
  7. The Back end is important too – for large communities, you need to monitor what is going on, not only in terms of content and activities but also in server resources.
  8. The support system;  for large communities, you may need a ticket system or a chatbot to help with common problems.

 

Engagement

  1. Reactions to posts – it’s always nice to receive and send gratitude. At the minimum, it should have a “Thanks button.”
  2. Emoji support – should be a non-issue with modern software, but worth checking.
  3. Good search capability – this is very hard to do. It is not essential initially, but as the community grows, it is more and more relevant. Since this is such a challenging problem, I will give a pass to any software with a basic searching capability that works. If a “good search” is a must, you will spend extra resources to connect with services like Elastic Search that can help you out.
  4. Tagging support for users – this becomes super useful as the platform grows, and it is difficult for one member to keep track of everything. It allows other members to say, “Hey, you, your attention is invited here!” 
  5. Hashtags – are useful for large communities. Allows members to categories the topics, easily find them later, or follow a specific tag like “#manifestation” and get notified when someone posts something like that.
  6. Email Notification Settings – each individual has a different preference for how much incoming email they like. The platform should allow some granular configuration of that. A simple On/Off switch is the bare minimum, but ideally, multiple switches are best: for new replies, being tagged, daily digest, and so on.
  7. Mass Emailing capability: This is very important for announcements, reminders, and event invitations. It is different from, say, a reply notification because you need to email everyone at once, not just one or two members. You can solve this problem with dedicated email services like AWeber, but you need to make sure it is easy to integrate that service.
  8. Instant chat options – instant chat messaging is not an easy problem to solve. A bad experience will make the feature useless, but a good one does require a lot of technical expertise to get it right. You will need to figure out if this is something that your community wants and if you can add it later. Some hosted solutions provide this feature for you. 
  9. Member blogs or personal pages – does it make sense for your community for users to create their own space inside it?
  10. Gamification – I am adding this here for completeness – but I find that for spiritual communities this is not helping with engagement. Creating connections is much better than playing a game.

 

Learning and training

  1. Content Library – it makes sense for a spiritual community to have access to a private library of books, audio or video recordings, and other materials. Another thing to consider here is if only the staff updates the library or if the users can also contribute. 
  2. Sub-Groups within the community – this is incredibly useful for study-groups or accountability-groups. It allows a handful of members to make the journey together and have each other’s backs, isolated from the community’s entire buzz, and not generating buzz themselves that other people don’t care about. Used wisely, these sub-groups can bring the community together. 

 

Customization and Extensibility

  1. Theme Customization – it is best if you like the platform as it is—fewer costs for you and zero chance of messing up the colors. However, sometimes brand colors are essential, so in that case, you need to make sure the platform allows for that.
  2. Feature customization and extensibility – this can turn “mission-critical” later on. If you discover that you need specific functionality, can you easily add it? Can you buy a plugin? Can you hire a developer to write the code? The online environment is in constant change. I would recommend that the platform be either extensible through plugins or have a developer in your team help you out. Changing the software can cost you a lot of money and a drop in membership. So it pays to be able to make incremental updates to your system. 

How to Use this list

Likely, you don’t need all the features, but it pays to be aware of them. The way to use this list is to extract the features you need and sort them by priority before you shop around for a community building software. The sorted list will make the choice process much more comfortable!

Caution about free software

Free software has zero money costs upfront, and it is very tempting to start that way. You could use it as a test pilot, but as soon as you see it working, you need to either move to a paid platform that includes updates and maintenance or look for a developer that can do that for you. Do not wait until an emergency shows up, or your costs will skyrocket, and the choice of “free” might cost you the community. 

Do you still need help?

Let’s talk and find out what you need. 

How to run vBulletin 4.x on PHP 7.3

Upgrading vBulletin 4.x to run on Php 7.3 it is not easy, but it is possible. 

Unfortunately, there no one-button-click fix that can do this update for you. You have to be a PHP developer yourself or hire one. I have already done this for a friend of mine, so I know from experience that it is possible. I can say that it is worth it, especially for the performance boost that you get with PHP 7.3.

The technique I used to update the forum was to create a mirror on a test server. On this test server, I have changed the version to PHP 7.3, and I have “debugged” the forum until it was working, and it was secure again. 

To make your work easier, you need to enable some configuration options. You need to be able to flip PHP versions on your server quickly. I used a .htaccess option for that. And it would be best if you also turned on all the debug options in PHP like displaying or errors and warnings and logging them. 

I have also focused initially on the most important pages: the home page, the forums, and categories page reading a discussion, creating a discussion, and posting a reply. 

Working on this, you will quickly discover that there are only a few kinds of issues that you need to fix. And as you fix them, you begin to see them and fix them faster and faster. Those are unquoted strings, querying undefined global constants, the “/e” deprecated modifier for “preg_replace” and the old style of defining a constructor by using the class name and there some cases where “sizeof” is used on a variable that is not an array

Obviously, these are all a result of the deprecated features from the old versions of PHP. 

A particular challenge with updating the code is the template system. This code is stored in the database, and it is executed using the “eval” function. Evaluated code makes locating the problem and fixing it more difficult. For this case, I have created a helper debug function that I could use to print you the template name and the template code that would show a problem. I would then update the template using the Style Manager available in the vBulletin back end. 

Removing the “/e” modifier in “preg_replace” took a bit of testing a playing around. But you can use “preg_replace_callback” to get the same result. You have to pay attention to what arguments to pass an in which order. Again, once you fix one of the deprecated calls, you will be able to fix the rest. 

vBulletin is a major piece of software with a lot of plugins available. The size and complexity of it are what makes is so difficult to create a simple patch tool for the entire forum that will take care of all the problems. And probably why the original developers did not create such a tool. In my particular case, I have focused on the most used features, so the forum continues to be usable for my friend and his community and also remains secure. Working like this will make the scope of the update more manageable and will give you more time to fix other less used features later on. 

Some tips

Working with AJAX requests can be tricky because it is not apparent where the problem is. For those scenarios, make use of the Web Developer tools available in your browser to inspect the response of the AJAX request, where you will be able to see the problem more clearly. The quick reply feature is the one that you will find being broken by warning outputs.

Another tip I have for you is to keep the new code backward compatible with the old version of PHP. This approach will allow you to incrementally patch the LIVE forum as you work and make the transition seamless for your community.

The final tip is to address the temptation to disable the display of errors as a way to “fix it.” That is not fixing it; it is just hiding it and kicking the problems down the road. I strongly recommend that on your test server, you have full debug on and work until you get no more warnings or notices. Then your code is ready for the future. 

Why not just upgrade to vBulletin 5.x? 

When I was considering upgrading to 5.x, the new code was unstable and buggy. It was not ready for a production environment. In my mind, the choice was clear: stay with 4.x – a time tested and proven solution that works. 

If 5.x is now stable, there are still more things to consider: how easy it is to migrate your community to the new version? Are you able to port all of your customizations? The signup process? What will your community think about updating the software and changing something that they are very familiar with? Some communities prefer the “new thing” and would gladly embrace and be curious about vBulletin 5.x while other communities would rather stay with what they know and with what works. The later communities would greatly benefit from a seamless upgrade of the old code to work with PHP 7.3.

In short: what is important for you and your budget will determine what to do next: upgrade the code, update to 5.x or move to a different forum software altogether. 

If you plan to do this kind of migration yourself and you get stuck, feel free to drop a comment below. I might have some insight as I have spent a couple of years working with and customizing vBulletin 4.x.