About
Codingfish is a reference on community and marketplace software you can run on your own server.
The catalogue holds 28 entries across 6 categories: forum platforms, marketplace and classifieds systems, Q&A engines, group chat, comment servers and federated software. Every one of them can be installed and operated on infrastructure you control. That is the only membership rule, and it is the reason several well-regarded products are absent.
What each entry records
Name, category, licence, the runtime it commits you to, whether a vendor-hosted option exists alongside the code, and a line describing what the software actually is. Forum entries also carry a thread model and an extension mechanism, because those two decide more about the resulting community than any feature list.
There are deliberately no version numbers and no prices. Both change between one reading and the next, and a reference that quietly states a stale version is worse than one that never claimed to know. Where a figure matters, the entry links to the project so the current number can be read at its source.
How the comparisons work
The comparison tool sets any two catalogued platforms against each other on the fields above and marks the rows where they differ. It is deliberately narrow. A comparison that lists forty rows is not more informative than one that lists five; it simply moves the work of deciding which rows matter back onto the reader.
The written comparisons go further and say which of those differences should decide the question in a given situation, which is a judgement rather than a fact and is presented as one.
How the entries are decided
Every claim in an entry is checked against the project's own documentation, and where something is uncertain the entry says less rather than guessing. Licence, runtime and hosting model come from the project; activity comes from its public repository, read at build time and dated in the sentence that reports it.
Comparisons name the row that decides a given pair rather than scoring every row equally. That is a judgement and it is presented as one, because the best answer depends almost entirely on which runtime the reader can already support and what shape their conversation takes — which is exactly the kind of question a ranked list answers badly.
Membership in the catalogue is decided by the rule at the top of this page and nothing else.
Where the numbers come from
Three figures on this site move on their own, and all three are read rather than written. The activity date beside each catalogue entry is the last commit to that project's public repository. The release tag, where a project publishes one, comes from the same place. The importer counts on the migration pages are the actual script files in the Discourse repository, counted at build time.
That has two consequences worth stating. A number here can be wrong because the source was unreachable when the page was built, in which case the previous value is shown rather than a blank — the page never invents one. And five of the twenty-eight entries have no public repository at all, so their rows carry no activity date. Absence of a date is absence of evidence, not evidence of abandonment, and the pages say so where it matters.
Everything else — licence, runtime, hosting model, thread model, extension mechanism — is recorded from the project's own documentation and changes only when someone notices that it changed. That is the part most likely to go stale, and the part corrections help with most.
Further reading
The habit of writing down what a piece of software costs to run is older than any of the platforms catalogued here. A 1986 note in Dermatologic Clinics, indexed on PubMed under the flat title “Computer software”, is a small artefact of the period when that advice was still being written for one profession at a time, because no shared literature existed to point at. The narrow version of the same problem is what these pages try to answer for community software: not what a tool does, but what it asks of the person who has to keep it running.
Corrections
Software changes licence, changes maintainer, and occasionally stops being maintained without announcing it. If an entry here is wrong, the contact page is the way to say so, and a correction is more useful than a complaint about the omission it caused.
The most useful corrections name the field and the source: which row is wrong, and where the right value is written down by the project itself. That is a two-minute fix. A report that a platform is missing is also welcome, but it is a slower conversation, because the membership rule at the top of this page has to be applied before anything is added.