Hello everyone! I hope you've had an excellent 2023 and a great entrance into 2024!
The year 2023 was an eventful one for Misago. Late in 2022, I decided that before focusing full time on the Misago rewrite, then known as Misago v4, I would like to implement a few quality of life improvements to Misago's main codebase ("the 0.x codebase") that's built with Django.
This course correction resulted in Misago 0.28 being released in January 2023 – the first Misago release since the Misago 0.27 bugfix release in December 2021, and first Misago feature release since 2019! Misago 0.28 included the OAuth2 client, a new threads list, and redesigned page headers and toolbars.
Misago 0.29 followed in February 2023 with a security fix to the message parser. In the same month, I decided to abandon the Misago v4 rewrite and instead focus completely on the continued development of the existing codebase. Misago 0.30 in March 2023 brought redesigned posting forms, and versions 0.31, 0.32, 0.33, and 0.34 followed with bug fixes and small feature improvements.
In May 2023, Misago 0.35 was released, re-adding the notifications framework to the software. Version 0.36 was a maintenance release with tweaks and fixes. In November 2023, Misago 0.37 was released, adding context markers to all translation messages, resolving many of the issues that Misago translators had to deal with before. Misago 0.38 was another maintenance release, but in late December 2023, Misago 0.39 was released, bringing a new plugin system to Misago.
Here's number of releases per year in history of Misago:
- 2013: 3
- 2014: 5
- 2015 & 2016: 0 (0.6 was a rewrite for new Django features: swappable User model and new database migrations)
- 2017: 20
- 2018: 9
- 2019: 9
- 2020: 0!
- 2021: 1
- 2022: 0!
- 2023: 16
Decision to continue developing the existing codebase turned out to be the right one. Not only Misago is now enjoying a steady improvement, I am seeing a small uptick in number of Misago forums being started in the Google Search Console, and another small uptick in number of GitHub stars the project is now receiving. Still not out of the woods, but the tide is turning.
We are now in 2024. What's the plan?
Let's start with the biggies: Misago still has major pain points that need addressing. One of those is the byzantine permissions system. The other one is the messages parser that is very hostile to developers and plugin authors. Another one is barely-useful search feature. The UI is duplicated in Django templates and React.js components, which also need JSON API for interactivity. Finally, the HTML and CSS is Bootstrap 3, which is currently 10 years old, requires old version of the Less compiler to generate CSS files and is missing some very useful CSS features that are now widely supported by all browsers, like Flexbox.
My plan for 2024 is to address as many of those big pain points as it is possible. Immediate priority is to finish the work on new permissions system. There's still few things that need to be done in it before it can be merged. And even after merge, it will take a while to update the codebase to use it instead of the old one. But the new permission system is a huge improvement over the old one. Next priority will be to finally replace current parser with new one. This parser was already implemented on the abandoned GitHub branch holding the Misago v4 rewrite code, and only needs to be copied to current Misago and updated to work with Django. It even has plugin support already done!
After those two features are merged, I will focus on removing React.js from following Misago views:
- Threads lists
- User forum options
- Users lists
- Search results
Doing this will make it MUCH easier to work with those pages in future. And, because threads and threads lists view are most important (and used) views on internet forum, removing React.js from them will greatly simplify improving those pages and adding new features to them in the future. Also, in process of removing React.js from those pages I will update them to use new permissions system instead of the old one.
I will also bring back user signatures to Misago as part of this work, because those are very easy to add, and this is one of often requested features.
All this work is planned for the Misago 0.40 "Gigarelease". I am hoping to ship it before the Q1 ends, but it may be delayed until April if the free time gods are not kind to me.
I have no concrete plans for Misago releases after that one. I know I would like to remove React.js from entire codebase in 2024. But I would also like to add thread tagging. And replace posts likes with reactions. And redo moderation events. And make read tracker per thread. And let users mark categories or even whole site as read with a click of a button. And notify users about other events and not just new replies. And let users report content to moderators. And redo profile fields to let admins define those in the Admin Panel. And add separate display names to user profiles like on Twitter and Discourse. And let users mute users they don't like. And track connections between posts to let users to hop from post to its replies. And, when Bootstrap 6 releases, move the UI to it. And split one post into two. There are a lot of ideas for making Misago better than it currently is!
We'll see how much of this will happen in 2024, but I am feeling optimistic that this will be the year when pendulum swings from the "Misago needs deep and large-scale changes to make other improvements possible" to the "there are no big issues with Misago's codebase that are preventing us from working on improvements and new features".