Should you build your own forum software from scratch?
Should you build your own forum software from scratch? After several recent conversations, I realize this question is still on the mind of some. I really thought it was settled, but I guess not.
Let’s look at the core of the debate of whether one should build their own from from scratch.
Why do companies still consider building forums from scratch?
When a company is looking to build a forum software from scratch, it seems to come down to following existing conditions within a company:
- They have a development team who is highly involved in the companies software stack.
- They want the most flexibility possible.
- They want complete control on decisions related to features.
Now to further specify. What seems to be the main impetus for the belief they can build a functional forum solution for their company? A world view that all a forum needs is a database, some sort of user registration/profile system, a way to have categories, a couple of simple buttons and boxes so people could start a discussion and comment. Oh and maybe the ability to react to the content. In short: “How hard could it be, really, to build a forum from scratch?”
Well then it struck me. I could say the same about building a simple house. Certainly it’s only some wires, pipes, bricks, cement, nails, wood and roof tiles (for the pure basics). I know some really handy people and I could surely pull it off with their help. It may take some time and money, but it’s certainly doable, right? And yet with all my confidence, I still wouldn’t want to live in a house I built myself.
And so, just as I could build a house, a talented dev team could certainly build their own forum platform, but why bother? The world is full of dead forum projects. Once you get past that mess, there are still hundreds of existing projects and of those, only a few dozen are really in active development.
There is also a reason why all these projects eventually get abandoned. It’s time consuming to keep the code up to date. And yet this idea of building a forum software from scratch seems to persist.
To be fair, there may be times when it makes sense to build it yourself. Here are a couple of reasons I came up with…
Pros of Building It Yourself
- A new long-term project is needed to justify budget/headcount.
- 100% choice on the programming language and database used.
- 100% absolute control and flexibility.
That’s it. Honestly, I can’t think of any more reasons. I know some will argue a custom built systems will protect you from standard attacks from hackers, but that’s a poor choice as a benefit.
Now let’s look at…
Cons of Building It Yourself
- Waste time repeating mistake others have solved. Certainly learning to code is great, but risking a company’s reputation on potential blind spots others have already mitigated is a risky endeavour.
- It’ll take a long time to get something usable. People won’t have patience with a half-baked solution. Sure the basics are simple, but the polish can take years.
- What happens when the person in the company who builds this custom forum moves on? Or if they get bored? Or if they get busy on another project?
- How will the company stay on top of the latest vulnerabilities, compatibility issues with browsers, mobile devices design quirks and other issues that can crop up? Who will fix these problems?
- Where can one get help? Going the road alone means losing the ability to tap into the community of people using a similar solution. It is certainly valuable to have peers who use the same solution and consult with them on best practices.
- What is the driving force or incentive for continued improvement and innovation? What stops the development from stopping at a MVP (minimum viable product)?
- What happens if one day it’s time to migrate to a different platform? It would be a shame to lose all that wonderful tribal knowledge over bad programming or database choices based on lack of experience.
So what’s the best solution, if you realize building it yourself may be a bad idea? Well it depends, as most things, on where you want to spend your valuable time and how critical your brand image is.
At the bare minimum, I would say the best bet is to find an active open source project (ahem, like this ) and consider using it as the base for what you are trying to achieve.However, if your project is for a business, where there are serious monetary consequences for costly mistakes, I would consider a hosted forum solution instead.
I don’t recommend this only because I work for Vanilla. I would believe this even if I didn’t work here, I just have the benefit of being allowed behind the curtain. Let me share some of what you may not be aware of.
There is a serious amount of work to stay compatible with multiple browsers and mobile devices, handle traffic spikes so it appears seamless to customers, not to mention the constant vigilance to keep our code secure. And that’s just the tip of the iceberg. We have to stay up-to-date on the any supported libraries that change, third party connectors that modify functionality, API breaking-changes, and all those spammers who get more and more sophisticated.
Now I may have convinced some of you, but I know, for some, there is still this “fear of losing flexibility”. There is no point to sugar coat it or lie. You will lose some flexibility. However, what exactly does it mean to “lose flexibility”? Are you simply having commitment issues, leaving open a door you’ll likely never walk through?
Some of the rigidness in a hosted solution is to protect us (and you) from things you may not have considered. We’ve got tons of experience when dealing with billions of interactions and thinking about forums at scale.
So while I will admit there may be a small loss of flexibility, you should actually see it as a door opening for a dev team to do more. Can you imagine how much easier it is for a team to extend an existing system already resting on a solid foundation? I have seen this in action. Leveraging SSO, our powerful API and Github Theme Pull, I have had the pleasure to see some extremely talented (and creative) dev teams, extend our solution in ways we never considered. Now that, to me, is real flexibility.
Adrian Speyer is the Head of Community at Vanilla Forums, a community software company located in Montreal. His opinions are his own.