I've been thinking about writing a proper mid-year update for few weeks now, but I've couldn't get myself to sit down and actually write one until now.
Around a month ago Misago 0.20 was released. This release was first one since I've announced the "change of approach" back in 2018. If you are unfamiliar with what this "new approach" meant, the idea was to improve the experience of Misago site-owners by implementing the features for common customization/configuration to admin panel. For example, before Misago 0.20 one had to override and edit templates if they wanted to do something as basic and common as set custom logo image, enable Google Analytics, or add custom CSS. In Misago 0.20 those actions became doable from the admin control panel. With Misago 0.20 we've also deprecated ways other than misago-docker
for forum setup.
The feedback I've got since then is very positive. I also see positive change of trends in analytics tools for this site, included visits and back-links from new Misago installations.
So, where are we headed?
Next Misago which likely will have a version number 0.22 will focus on delivering the Single Sign-On ("SSO") feature. With this feature you will be able to "connect" your Misago installation to the users database of your site. Enabling SSO on your forum will cause Misago to disable features for username, email and password change. It will also cause "login" option to redirect users to your site. Your site should then redirect user back to the Misago, but in redirect link also include necessary data for Misago to create user's account (or update previously created one) and log in user using this data. This integration method is current industry standard for sharing user data between applications.
After that the next improvement scheduled to come to Misago will be option for adding custom links to main menu (and footer menu). This is another common customization that Misago is missing an "easy" path for.
Whats to come after that that? I don't know, but I have a bunch of ideas:
Replacing current REST API with GraphQL - this one is really really want to do. GraphQL APIs are a joy to work with as either backend and frontend developer.
New UI/UX - current interface was implemented on the "minimum viable product" base. It does its job, but there's a lot that could be improved in it.
Plugin system - currently Misago supports customization by manner of adding custom Python logic to the pipelines. This approach assumes some knowledge of Python and Misago's internals. This approach is not viable to the end users who would like to just add some pre-made features to their site. I would like to replace this approach with plugin system, in which site owners would install new plugins by writing their names in plugins.txt
file and running the ./appctl rebuild
.
Simplifying permissions system - current permissions system is super-powerful, but it is also considerably complex and hard to work with. It also makes it very time consuming to add new features or change existing ones due to sheer amount of possible permission combinations that need to covered and tested. New permissions system would drop "roles" concept and replace it with new concept build around "user groups".
Scaling down the feature base - Misago's feature base has been growing over the recent years, but it's reaching the point where it's too much for me to handle. Pools, likes, following users, profile fields and (possibly) social login features could live as community-maintained plugins instead, allowing me to "crowdsource" some of work on possible plugin developers community. I understand this may be an unpopular decision for some, but I feel that having maintainable and focused core of well polished features paired with plugins is much greater value for the users than having single complex forum package that does 231321 things but only few of those on the great level.
When I am imagining "Misago 1.0", I see forum package that is fast, great looking, has smooth UX on both desktop and mobile, and plenty of plugins to pick from.