Misago Forum Software

Hello everyone!

I would like to share with you Misago, my open source project that I’ve been working on for last decade or so.

Misago is a stand-alone internet forum software (like Discourse or Invision Community), except its backend part is build in Django. My inspirations are Invision Community, Discourse and existing social/chat platforms like Facebook, Reddit and Discord.

Misago already powers bunch of communities in internet, largest of which is DPRevived community. It was proven again and again to be high performer that scales well and has no known performance issues.

I am currently in the process of incrementally rewriting it to address existing UI/UX problems, make it easier to localize to other languages, customize with plugins, simplify the permission system. Eventually I would like to replace the current API with new one (perhaps RPC one or one implemented in Django Ninja) and rewrite the JavaScript client to modern React.js and TypeScript. There’s quite a lot to do here, but since I’ve started this work a year ago I am making a steady progress to achieving all of this.

1 Like

Thanks for your work! I used this on my home brewing club’s website.

1 Like

Misago 0.37 and 0.38 has been released. Those two are part of process making Misago’s foundations better to work with for me and other developers (and in this case, translators).

Misago 0.37 adds context markers to translation strings. It was a massive chore to do for ~3.5k places where Misago uses translations, but I’ve translated it myself to my own native lanuage (Polish), and translating experince second time was much smoother thanks to contexts on transifex telling me where this message is used, and also let me translate english words differently based on them being verb or noun. I highly recommend always using the translation contexts, even for long messages.

Miasgo 0.38 updates version of Django used by Misago from 3.2 LTS to 4.2 LTS. Minus small hiccup it worked out of the box. Smooth job, Django team :+1:

I will now move on to implement a new plugin system that exposes filter and action* type hooks (like in Wordpress). Currently there’s no way for plugins to modify Misago’s JavaScript client, and while I know how to address that and have a prototype working, it’s not possible to get into current codebase without larger effort. However Python-only plugins still have a utility for people who know it to finetune Misago’s behavior in a ways I haven’t predicted.

In hindsight actions may be doubling the signals feature that Django already implements, but custom implementation will provide explicit list of args specific to provided hook together with type hints. I also plan to generate available hooks reference document from code, due to there being potentially hundreds of those in the future.


Well, that was a lie. For some reason multiple choice inputs in Misago’s admin (using Django forms) are now displayed as radio-choice list. Misago 0.38.1 with a fix will happen sometime this week. Thanks to @CodenameTim for finding this.

1 Like

I did? :sweat_smile: Glad to see this active!

Maybe I’ve mistook yo for somebody else, sorry then :smiley:

Misago 0.38.1 is now available, fixing the incorrectly rendering admin fields.

This problem was caused by Django’s CheckboxSelectMultiple change to inherit from RadioSelect instead of ChoiceWidget it did prior.