Where do you go when you have a question? Since humans began walking the earth, we've asked the people around us—our family, friends, neighbors, classmates, co-workers, or other people we know well. Much later came libraries and bookstores offering knowledge and resources, as well as access for anyone to come in and search for the answers. When the home computer became common, these knowledge bases extended to electronic encyclopedias shipped on floppy disks or CD-ROMs. Then, when the internet age arrived, these knowledge bases migrated online to the likes of Wikipedia, and search engines like Google were born with the purpose of making it easy for people to search for answers to their questions. Now, sites like StackOverflow are there to answer our software questions and Quora for our general queries.
The lesson is clear, though. We all have questions, and we all want answers for them. And some of us want to help others find answers to their questions, and this is where self-hosted Q&A sites come in.
Self-hosted Q&A sites
If you want to create your own Q&A platform, there is always the option to develop everything from scratch. But this means you need to write a lot of code for the frontend, backend, database, security, etc. None of these are simple tasks.
Thankfully, there are a number of well-tested Q&A platform solutions in the open source space. These include:
|Discourse||GPLv2||Ruby on Rails, Ember.js, PostgreSQL, Redis||Very popular 100% open source discussion platform based on Ruby|
|Vanilla||GPLv2||PHP, MySQL||Modern, stylish Q&A site based on PHP|
|Askbot||GPLv3||Python, Django, MySQL or PostgreSQL||Interesting Q&A platform based on Django and Python, previously called OSQA|
|Scoold||Apache 2.0||Java, Spring, database agnostic||Extremely powerful and full-featured Q&A site based on Java|
|Question2Answer||GPLv2+||PHP, MySQL||Q&A platform based on PHP, powering over 22,000 sites in 40 languages|
|Shapado||GNU AGPL||Ruby, MongoMapper, MongoDB||Simple Q&A site based on Ruby|
|LampCMS||GNU LGPLv3||PHP, MongoDB||Open source high-performance web program for creating Q&A websites based on PHP|
If you prefer videos to text, watch my YouTube video about these seven open source Q&A platforms.
Discourse is an increasingly popular choice for Q&A sites for open source projects. Mozilla recently adopted Discourse, and programming languages like Python and Go also use it. These sites can be public or private, as is the case with the Opensource.com Correspondents' Discourse platform. As of this writing, Discourse has 713 contributors and 35,933 commits.
Interestingly, one of Discourse's three founders is Jeff Atwood, the creator of Stack Overflow, which is, without a doubt, the most popular Q&A site among developers. Discourse has many advanced features that make it super powerful.
A few of these features are:
- Its notifications operate like Twitter's. When someone mentions your name with the @ symbol, you will be notified.
- You can continue writing and composing while reading.
- You can drag and drop images into your post.
- The search functionality really works.
Discourse is based on the Ruby programming language, and its open source version is available under the GNU GPLv2. One downside is that Docker images are the only supported way for installing Discourse in production. While it is powerful, configuration and installation may require someone with a technical skillset.
The open source Q&A software Vanilla is anything but plain. One thing I love about Vanilla is its look and feel. Of all the Q&A software out there, in my opinion, Vanilla's site is the most modern, intuitive, and clean.
Vanilla's open source contributors are very active—its GitHub page has 118 contributors and 29,491 commits (as of this writing).
Vanilla is built on tried-and-true technology: it's written in PHP, and its backend database is MySQL. Some people may wonder, "Why PHP?" While there are many newer web languages, PHP is still a dominant language on the internet, and Vanilla is in good company with Drupal and WordPress, which are also PHP-based. It's available under the GNU GPLv2.
The test environment requires a number of technologies to be installed locally, including Docker, Brew, Yarn, Node, and Composer, and you can get it up and running by following its setup instructions.
Once upon a time, there was an open source platform called OSQA. This cool, open source Q&A platform was created by the makers of AnswerHub, which is a popular platform for enterprises. Although the platform is no longer maintained, you can find the remains of OSQA on GitHub.
Luckily, a new open source platform called Askbot was created based on OSQA.
The Askbot platform is based on Python and the Django framework, and it is licensed under the GNU GPLv3. As of this writing, its GitHub community has 101 contributors and 6,612 commits. Not bad!
Although I have tried pretty much every programming language out there, my preference is Java, as I have practiced it for a long time. When I heard about Scoold, an open source platform based on Java, I wanted to try it.
Scoold has many advanced features integrated into its platform. I especially like its ability to work with many databases and its OAuth support out-of-the-box.
The user interface is clean and intuitive.
Scoold's open source project is licensed under the Apache License 2.0, but it has a heavy commercial feeling, and its Pro version is closed source. The open source project seems to have quite a number of restrictions, which are detailed on its FAQ page:
But, looking at its GitHub page, the open source project appears to be maintained by just 18 contributors, and it has only 852 commits.
Please be aware of these things if you try Scoold, as the project may have a few restrictions that you find burdensome.
Question2Answer is another open source Q&A platform based on PHP. At a glance, the platform has a bit of a cartoonish feel, although I suppose the themes can be customized.
As of this writing, Question2Answer has only 20 contributors and 1,291 commits on its GitHub page, so take a little caution. But the project is based on the GNU GPLv2 or later, so you can easily contribute.
Shapado is an open source Q&A platform based on Ruby and the MongoDB database. Its GitHub has only 14 contributors and 5,149 commits. It does not appear to have a large following, and the latest update was in 2018, so be cautious before adopting it.
It's also open source under a less-common license that is worth knowing about, the GNU Affero General Public License (AGPL).
LampCMS is an open source PHP platform with a GNU LGPLv3 license. It has only one contributor, but I think it's interesting enough to take a look at.
Due to its small footprint, I would not recommend LampCMS for your production server Q&A platform. But due to its simplicity, it might be a good experimental platform to learn how a Q&A platform works.
With all of these options, how do you pick which one to use? After all, each Q&A platform has pros and cons. Some platforms are easier to install, others are documented better, and still others offer more flexibility. Looking at the long term, though, you want to pick a platform that has active open source community involvement. Also, consider getting involved by making your own contributions to these platforms. After all, that is what open source projects are for.
Did I miss an interesting open source Q&A platform? Please share your thoughts in the comments.