What Codidact wants to be when it grows up?


First I’m sorry for my English and if I’m causing noise.

I’m a moderator on Stack Overflow in Portuguese (Usuário Maniero - Stack Overflow em Português) and consider your idea fantastic. Many there see the same problem with SEI.

Congratulations on the initiative, independent of anything I wish you success.

I have read the discussions here and something was not clear to me about the purpose of the initiative.

Are you building a new community and you need a platform similar to what SEI provides (improved, of course, no matter what this means and which way it goes)?

Or are you looking for community management software by creating a Q&A-focused knowledge repository that should meet everyone’s needs?

That makes all the difference. My general perception is about the former.

But at times I see quotes that indicate that some of you want something bigger, it gives the impression that some want a platform to meet the needs of all people who need a Q&A and other forms of knowledge exchange.

On the other hand, what I saw being started is just another SEI clone (with different characteristics, I know some people won’t call it a clone), not unlike AskBot, Question2Answers, etc. are, but better. All of them who helped some people, but left many to wish, and that is precisely why you are building one more.

I thought about making some comments, but without knowing the purpose I don’t even know if they would be valid.

What is the ambition?


We are building a (in our opinion) better platform, and we will host an instance of it for a network of communities. The platform is open-source, so others are free to host their own instances.

You can learn more about the project from our wiki, which includes a functional spec for the minimum viable product (MVP). In reading the spec you’ll see that we are keeping some core ideas – it’s fundamentally about Q&A – and taking the opportunity to learn from a decade’s use of SE to improve some things. This is not going to be an SE clone. (The one site on a codidact.com URL right now is not using Codidact software yet; it’s a stopgap for a community that was in crisis. That software is more of a clone, but temporary.)

A key difference for the instance that we host, and the Codidact organization more broadly, is that we’re community-driven. We are not, and will not be, controlled by a for-profit entity. We don’t want to be caught between the needs of users and the needs of shareholders. When it’s time to arrange for a corporate entity (to hold funds, for example), it’ll be a non-profit.

We reviewed existing packages. Some of them are great if what you want is a clone, but we want more than that.

You can find links to everything (GitHub repo, chat, this forum, wiki) at https://codidact.org/.


Welcome, @maniero! Your english surpasses many native speakers :slight_smile:

Your SO link is pointing to a user on the english SO. I think you meant to link to: Usuário Maniero - Stack Overflow em Português

Take care!


Okay, I understand the general goals of the project. I already read about it, I followed the discussions here before posting.

My question is about the purpose of the software. There are two ways to do this. One is to build software in a specific way, and it seems to be what it’s doing, it’s what SEI did, and the clones did it. You just need to accomplish what one or more people decide what to do.

Nothing wrong with that, it has its advantages, for example it is easier to do. But it also has disadvantages, for example it doesn’t evolve so well, it doesn’t meet everyone’s needs.

As you are discussing whether the community should do this or that, you are building software for what you think it solves for you.

But some posts I read here show that some people think of something bigger, something that lasts, that grows, that meets the needs of many people. This only happens if you are consciously building a software platform. It is quite different from building something that meets a need. It is more difficult, but it also attracts more users and possibly more contributors. Each one does the part that interests him.

Rules come and go. What seems right today, tomorrow may not be. Each community may want its own rule. How to handle comments, votes, acceptance, etc.

The question is whether they are creating software to serve a community that you are defining how it will be, and others that want to do the same can take the software and use it.

Or if you prefer to build a platform that each community takes, configure, customize and act as they want because the software allows it.

Do you want to be a new non-profit SEI, that is, determine what is good for everyone and those who agree with it will use it? Or do you want to build something that gives them the freedom to build communities around their own Q&A?

1 Like

Thanks. I don’t know how pt gone :blush:

I think, we want to do somehow both, but more the latter (if I understood you correctly). We’ll develop a software, which enforces some central constraints (“Q&A platform”). It will be possible to host multiple, independent communities within one software instance. Each instance and community can overrule our configuration presets for most details (text, triggers, variables, rate limits, …).

Furthermore, we’ll be hosting one instance with multiple communities. We’ll give this instance a bit more support/assistance/… of course, but the communities are largely free to do what they want (within a reasonable limit - our simple Code of Conduct and legal stuff will have to be kept).

If I recall correctly, we plan to also have some kind of instance-level decisions by the community, such as having a review panel, which is elected by the community members and serves as a way of appealing moderator decisions and reviewing their behavior and possibly removing their mod status if needed.

We had some long-ish thread about what we are trying to build. If you have 75* minutes to spare, you can read through it. :wink:

* estimation by the forum software

1 Like

Okay, I’m not talking about hosting. Of course, in this modality some general rules apply. I’m talking about the software, a person downloads, installs and uses it as they want.

My question is how technically this software will allow the community to decide how to operate. Whether it can decide points of an up or down vote, whether the vote is anonymous or not, whether it will have badges, how it will close, remove, who has the privilege of doing what, etc. In other words, everything must be configurable / extensible to help the needs of that community at that moment.

This is the difference between being a software platform that is independently extended or having an opinionated software about how the community should operate (not about the content or rules, even because a software has no way of doing this, this will always be determined by people) .

I am not concerned with what community you are creating, but with what software you are creating.

I read this whole thread and I have a certain alignment with what gilles says there and in other threads. This discussion refers to having software limited by what that community decides and other communities will have two options:

a) accept that this is right and use the software (exactly what SEI has always done)
b) Create new software that meets your needs (what you are doing now), and so each new group of people continues to create new software because what exists does not suit them.


There’ll be a Meta category, where these questions can be resolved. Then we’ll just need to find a way to implement this; probably by giving community moderators the option to change this (with approval from one other, or so)

Okay, but the software needs to be thought out from the beginning to do this. The whole architecture must provide that. And what I have read here is that they are not doing this. It is a matter of decision, you may or may not choose to do it, but this decision must occur right at the beginning, leaving it for later it will make it so difficult to modify that no one will (I have experience with it).


That’s true. I think(hope), though, that we are doing it. For example this spec about user privileges includes bold markers, where something could be customized:

So I guess, we are aware. :slight_smile:

1 Like

Things like scoring algorithms, values of votes (toward rep), thresholds, etc can all at least be changed per-instance (i.e. we’re not hard-coding constants), and I think most/all are values in the database so can be changed per-community.


I certainly envision the software to be as flexible as possible.

The first priority is, of course, to support what we need for our instance. But I think that even for that, more flexibility is an advantage: First, anything that is configurable doesn’t need to decided at implementation time. Second, built-in flexibility makes it easier to change features that don’t work out the way we thought they would; instead of reimplementing stuff, we just need to change server settings.

But even if some aspect is hard-coded, and for whatever reason you cannot convince us to implement your desired feature, the code is Open Source, so you can just fork the software and modify the details yourself. You certainly won’t have to develop a completely new software just to change the scoring formula in a way we didn’t anticipate.


IMHO you are absolutely right. But it’s hard to build this later. You need to design this at first day. I didn’t see this being discussed here. Or you design to be a platform or you design to “achieve our needs”.

The problem never is the code, it is the architecture. Yeah, you can do the fork, but it is a fracture. If you want a community built software you need to provide architecture to ease this, not to split efforts.

1 Like