What other platforms exist and why won't they do?

Assuming that we build a Q&A (question and answer) site, why shouldn’t we reuse existing open-source Q&A software? Maybe they all suck, but:

  1. In what way does each candidate suck?
  2. How much work would it be to make one not-suck, vs building from scratch?
7 Likes

On platforms

I’m starting with a list from this (famous) Meta.SE thread. I’m only considering the ones marked as open-source:

https://meta.stackexchange.com/questions/2267/are-there-any-clones-alternatives-for-running-a-stack-exchange-style-qa-site

Askbot

Askbot doesn’t offer a demo version (right now?), so I can’t comment on its features. However it is build using Python+Django, a framework that was not only unanimously voted against but is also using a dynamic language which doesn’t scale well. (Edit: seems to have a base system similar to SE)

Biostar

Despite being open source, it seems to be built for a secific purpose instead of a general platform. Same technology concerns apply.

Django-knowledge

Is no longer maintained, seems to be more a support center, same tech concerns.

LampCMS

Same tech concerns apply, cannot comment on features, as demo doesn’t work

Mamute

Seems quite dead to me (not sure though), demo sites not working, so cannot do feature analysis

PaizaQA

Uses a tech stack voted against, demo site doesn’t work properly (login failure with given demo accounts)

Kliqqi-CMS

Is dead, its technology was also voted against (IIRC without proponent votes)

Question2Answer

Seems quite good, however has tech stack issues as others above. Not sure about moderation aspects

Scoold

Basic user management, moderation, image upload features are not open source

Talkyard

Uses tech stack voted against, is more of a forum than a Q&A site

Vanilla forums

Tech stack concerns apply here too, also seems to be more of a forum

On tech stack

The current choice of tech stack was done, because of concerns of scalability and type safety. I’ll ping @Marc.2377 for this, as he is the tech lead.

On this post

I’m making this post wiki (editable by everyone), so that we can update this list without adding more answers.

4 Likes

I’m not sure how much “has a tech stack we voted against” is relevant. Did we vote based on real needs analysis (based on what?), or did we vote based on what project participants are comfortable with already? I’m not saying the latter is negative – if the team actually building it isn’t comfortable it won’t work – but if lots of other platforms are using technology that our early vote ruled out, maybe that means we should revisit the issue instead of just ruling out those alternatives?

(I am speaking generically here; I did not vote and am not qualified to have opinions at the level of whether version X or Y of Python is better or whether such-and-such library is scalable and suchlike.)

5 Likes

I was just analyzing all platforms and chose that as a criterion due to the consensus-aspect. However I hope @Marc.2377 will be able to give more input into this, once he sees these pings (seems to be offline right now).

Also looking at the list the only project where it is really the only reason is Askbot. So it might be worth looking at it again in more detailed way.

1 Like

Thanks for the analysis!

It’s not a problem if the project is inactive or incomplete. If we’re willing to start from scratch, we can take on the maintenance of an existing project.

The tech stack is relevant. But the vote has limited value. It does reflect the enthusiasm of the people who voted, but as more people join this can change (all it would take to swing the vote is for one influent <language> programmer to join with a few followers), and it doesn’t convey technical limitations such as scalability (I think any tech stack will work for Mi Yodeda, but not for Stack Overflow).

5 Likes

Not sure whether it is relevant, but … there is a German Q/A site, focused solely on programming topics, and according to http://codekicker.de/fragen/Software-verwendet-codekicker they developed a BBCode parser for .NET ( https://archive.codeplex.com/?p=bbcode ) (open source, CCA3.0 license) (I understand this, on a technical level, only in so far that this is not a complete solution, but may be a useful building block, but am sure there alternatives…)

There’s something in this; existing QA platforms have the advantage that we can use them right now. As in if we had enough people who wanted something else we could point them at $newQAsite and see how things evolve.

On the other hand, if that QA site uses languages / stacks folks aren’t familiar with, it may create a tech debt / burden greater than creating something from scratch, once we have a concrete MVP.

I can’t comment on the latter; perhaps @Marc.2377 or @ArtOfCode could weigh in on views on tech and what the team knows and is comfortable with?

2 Likes

I’m thoroughly tempted to start up a new discussion in a separate thread - if you want me to let me know - but I feel like this is because we’ve been spoiled by what Stack Exchange software has provided over the years.

Let’s be honest. That’s a clean package and it’d take a lot of work to replicate anything close to that.

So, my initial thought: why recreate that?

To answer your first question: each candidate sucks in its own right in that it’s attempting to ape what Stack Exchange did. To a degree, every clone would be wise to do so since it’s the archetype of successful Q&A.

However, it all becomes a bit same-y. Nothing about those systems pops out or adds more value than not just going to Stack Overflow or some other Stack Exchange site wouldn’t provide. Worse, it’s completely unclear how new features, which would differentiate from or add value to this Q&A platform, are capable of being added. It may be simple; it may be pulling teeth. With a platform that you pick out of the box, you’re left with the design decisions that its predecessors made at the time.

To answer your second question - there’s definitely work, but that too is non-deterministic. Depending on how certain features - such as anonymous posting - are meant to be handled, certain design principles will make building out features like that a lot easier.

I’ve been kind of thinking that an actual protocol - like ActivityPub - could be adapted for Q&A in a unique and value-add way. Implementing the protocol could provide some freebies that weren’t really intended as part of MVP - such as chat.

Better yet, it frees this platform from being yet another Stack Exchange clone. I cannot stress enough that an effort like this will sink if it turns out to look and feel just like Stack Exchange, since this lack the notoriety.

So…with that said:

  • My vote would be to build this from scratch.
  • My vote would be to leverage the ActivityPub protocol to a degree (e.g. disable federation to other Fediverse sites as a baseline) to allow for flexibility in how users can interact with content.
6 Likes

A more specific pointer, in response to “ActivityPub” that was mentioned above: They even have considered this, via the Question type:

The Question object can be used to express various types of inquiries.

For instance, simple open-ended questions similar to those posted to crowd-sourced question and answer websites:

(See https://www.w3.org/TR/activitystreams-vocabulary/#questions , with some basic examples).

2 Likes

Question2Answer has Stack Exchange importing, and it’s complete enough in features to satisfy PhysicsOverflow.

2 Likes

I’ve been privately pontificating about what UI features would make a better experience for a Stack Exchange-like site, comparing it with some well known and some obscure online collaboration systems. I just discovered Codidact, and even though what I’ve been working on is far from complete I think you could find it interesting and maybe even useful.

It’s done with Kialo, which is one of the aforementioned obscure online collaboration systems. Here’s the link. I’ve described Kialo as having made every design decision opposite from Stack Exchange, but both are still basically being about discussion focused on a single question. That makes it a very interesting reference for comparison.

The purpose of using Kialo was to try it out in the real world, which means you’re welcome to jump in on the discussion (and vote!). If you’ve never used Kialo, go ahead and watch the video that tells you what it’s all about. I had to shoehorn it a bit to fit the Kialo format, but overall I think Kialo is pretty good for discussing pros and cons.

One other tool I’d like to point out is Wikum. It’s discussed briefly in that Kialo link. I think adapting the notion of a summary node would be great to solve the conflict between getting to answers quickly and being able to preserve useful discussion. At the point where you’d move a discussion to chat in Stack Exchange, you’d just create a summary node for the discussion, which would have a short writeup of the most important points and a way for people to drill down for more detail if they are interested.

Kialo is definitely an interesting concept, but I think it is more apt to opinion-based topics than purely fact-based questions. I could imagine that it would be a great tool for organizing development of Codidact, but I don’t think it is a good fit for an SE replacement.

Indeed, you yourself wrote:

But on SE (and in future Codidact) there generally will not be a discussion of pros and cons. For the question “How do I access the internet from C++” there are no pros and cons, there are only correct and incorrect answers.

Moreover, this “pro/con” quote shows another way how Kialo’s goals differ from Codidact’s. Kialo is optimized for “yes/no”-questions. While the typical question on SE is a “how”, “why” or “what” question.

BTW, Kialo’s terms of service seem self-contradictory: By one clause, by posting on the site you allow all users to make unlimited use of your posted content, on the other hand, copying content for other than private use is prohibited by a later clause. I didn’t sign up because of this.

3 Likes

Ouch! That’s a big problem for any site that provides answers to programming questions. Have to be able to copy a snippet of code and use it in your commercial or public open-source project.

2 Likes

Oh, I certainty wouldn’t suggest cloning Kialo wholesale. They’ve just had to deal with some of the same issues, and it’s good to see different approaches to handling them.

For example, on SO, privileges are generally site-wide and gained by doing specific things, while on Kialo, privileges are generally question-specific and granted by people who already have privileges. I think Codidact can and should do better than either of those systems, but it’s good to know that both exist in the space of designs that work in practice.

Another example is that Kialo doesn’t have the same ownership culture that SO has. You can always find out who originally wrote a claim (the rough equivalent of an answer or comment), but after it’s been accepted into a discussion (a no op at most privilege levels) it’s free game for anyone to correct, split, merge, move, etc.

That of course leads to the question of how to fairly divide up the Internet points for a claim that’s been spindled, folded, and mutilated. The Kialo community solves this by not caring so much about Internet points. They are given freely and used more as an indicator of how much experience you have with the platform than a status symbol or indicator of competence.

I’m not sure that’s always true. “Write the first implementation of RFC 6214: Adaptation of RFC 1149 for IPv6” is a technically correct answer, but even if you have the the birds required, it is a solution that requires a lot of effort and there are serious performance concerns to take into account. That example is hilariously over the top, but I’ve seen real-world examples of questions with several correct answers that involve different trade-offs, and SO CV generally isn’t very good for discussing those trade-offs.

The introductory video makes it sound that way, but Kialo has an option to make the top-level responses be regular answerers instead of pros and cons. The real problem is that you can’t have things that aren’t pros and cons at deeper levels, but that isn’t necessary as often as you might think.

Eeek!

1 Like

Finally weighing in here (sorry for the delay, again!).

From that list by @luap42, I had seen the demos for all platforms that provide one (and live sites, in a couple of cases). For those that have no demo available, I had a look at their source code to get an idea of what they offer and how mature they are. I also did this for some of the platforms that do have demos, and that I found interesting. There are a few other options that are not on that list (and I don’t remember now, at least not without searching over Discord transcripts, which I can’t ATM due to time constraints) that I have checked as well.

Question2Answer is, in my opinion, the platform with the most features and is more tested than the others. Still, according to my preliminar analysis, it has it’s fair share of shortcomings, both in terms of architecture/maintainability and functionality. Adapting it to our needs would be hard. I personally have bad past experiences with modifying existing software to behave too differently from how they operate out-of-the-box; there are at least a few others in the team who also share this “trauma”.

Still, I was going to perform more in-depth analysis of some of these platforms (about 3 weeks ago, maybe more), but contributors and team lead have successfully convinced me that, by then, there was little point, for practical reasons of time management and team expectations.

Thus, in our case, given our requirements (functional and technical), medium and long-term goals and the contributors’ skillset, it appears that developing our own solution is the best course.

4 Likes

I’ve used Askbot for a serious project, and found it very frustrating. It is very much a surface-level copy of Stack Exchange without much thought to how the site would work at any scale. Moderation is hard, and community-based moderation is next to impossible. There’s no way to mark duplicates. There’s a close reason “closed: problem is solved!” more suited to a forum than a Q&A site.

There’s more, but in our case, rather than salvaging, we decided to migrate to a Discourse-based forum. Which brings me to my next point: have we considered using Discourse as the base? It’s an active, awesome open source project with a reputation system built in. There is a rudimentary Q&A plugin. Rather than creating something all from scratch, why not build on that?

2 Likes

Not sure if we discussed this publicly, but I, personally, did consider it.

…And concluded it’s a bad idea. The Q&A plugin is too rudimentary (there is another one, but it’s not great too); the core software is just too different; the source code, while nice, is also way too “different” that it would require much more work than simply developing a new implementation and copying bits from here and there or referring to specific parts of the Discourse implementation as inspiration. Trying to adapt it to a Q&A system in the way we’d want is simply not viable.

2 Likes

Biostar is really nice. The github is there; https://github.com/ialbert/biostar-central

Which limitation it had ? as their demo is for biology, but the topic covered depend on us.