I am not happy with Misago's current architecture. It sure took me far, but it's showing its limitations and is slowing me down.
This new architecture was initially realized as ambitious v4 rewrite. But this v4 plan was too ambitious and too big to deliver without hurting existing version, so I've decided to scrap it a while ago.
But I've been thinking a lot about evolving existing codebase into this new architecture in smaller steps. Yesterday I've settled on 10 steps roadmap on getting there:
This roadmap is still years of work, but now in smaller and saner chunks. So when there's no higher priority work, I will work on items from this roadmap, slowly pushing the cart towards the goal.
Those items have different complexity and completeness criteria. For example, for filters based plugin system I just have to copy filters abstractions from v4 branch and change them a little to make them work with existing codebase, then setup developer documentation for plugin hooks. At this point this task will be considered completed and closed, but it will only be a beginning of the process for adding extension hooks using those abstractions to existing Misago features. But implementation of GraphQL API will be a months-long process spread over multiple releases as new features are added to the GraphQL API piecemeal and individual parts of the UI are changed to use those instead of old restful API.