We've did it! This week Misago has passed 1000 stars on Github! 🎉🎉
This (roughly 😉) means that 1000 people found Misago interesting enough to them to bookmark it for later time via Github Star. Thank you for helping increasing Misago's visibility on Github and in Django/Python communities!
And while we are at updates, lets...
Sum up the summer
I've had quite the plans for Misago on the summer, plans that sadly didn't materialize much due to work interrupting me constantly. Summer is mostly light time in advertising, when most of people and clients are out on holidays the time is usually spent slowly, thinking up possible ideas for starting school year or bigger things for xmas, doing mostly maintenance work on our apps and sites. But, well, this one was quite different from previous one, and brutal attention requirements meant I was coming home either to keep working to meet milestones, or not in the mood to look at any code. This resulted in delays to the plans I've made for Misago.
Originally I've hoped to ship two features over the summer: the simple search dialog in forum's navbar, and post-accurate read tracking. I've shipped first thing few weeks back, and will only get to work on latter one after I wrap up some cleanups that popped up along the way.
This is the short-term goal form me: do some cleanups and improvements in Misago API's as continuation of work I've started early into summer, and that brought us the improvements to mass moderation actions. Then make readtracker post-accurate, which allows for some interesting things, like flagging thread as unread for users that already read it when moderator approves queued post on, say, page 2 out of 3. In addition to this readtraker will tip users off if they somehow miss the posts. Other benefits of this approach will be keeping read data when threads or posts are moved around the forums.
Playing the long game
Some time ago I've made decision to call it quits on current hybrid approach to Misago's frontend. Originally I've decided to go this way, because it spared me need of writing router for whole site, and I've been writing JS Views only for things that needed interactivity, leaving everything else in Django's templates for end users to customize. This sounded great approach, but eventually I've learned from experience that majority of views in Misago are interactivity-heavy and require me writing same html twice, first as JSX, and then next as placeholder UI for Django. Lastly, this approach was messing up with a lot of folk trying to customize how Misago markup. The "I've edited template and it displays for split second and then it goes away!?" posts are coming up again and again and again are perfect proof of this.
So the plan is to move on and convert the Misago to proper SPA application, with bulk of Django templates being simplified and delegated to the role of placeholders for useragents that for one reason or another don't support the JS, which your human users interacting with Misago purely trough the JS UI. Bulk of Misago's JS will propably need to be rewritten to work with React Router, some of state will need to be moved up to the React Redux state container, etc ect.
Somewhere there there's also plan for using latest and greatest in frontend development, React 16, Bootstrap 4, Sass, Jest, Reactstrap, forming the base that's futureproff enough for implemention of all those cool features that I've envisioned for Misago, that I've didn't want to implement yet to don't complicate work in maturing and stabilising our frontend.
Finally, keeping new frontend on separate branch means we'll not be having to deal with same "years old codebase vs fresh codebase" dilemma that Misago was experiencing for years that 0.6 was in the making, that effectively made it mentally challenging to hop back and deliver fixes for current releases.
That will be the plan for next months.
On final word, Thank you all for being here and giving Misago a chance! There's nothing more motiving to work on opensource than seeing other people find your work useful to them and there's no greater reward than seeing communities come together thanks to your work!