Hey all!
I guess a few of you might wonder what’s going on with the Natively frontend development
I’ve been a bit silent up to now, but I thought I should give y’all my planned roadmap and what’s going on behind the scenes.
Trigger Warning: This thread contains a fair share of technical terms - read at your own risk
Feel free to ignore all the tech speak and just read the general message if you like.
Current State of the Union
As it stands, the frontend is currently split up between two technologies, one is django-generated pages, each with a small React app that gets the data from the django page, but there is no frontend-side data storage (e.g. Redux) and those apps are running in isolation, being unmounted as soon as the page is switched.
The other technology is next.js (maybe some of you remember Brandon’s big overhaul some time ago - that’s when next.js entered the stage).
Plans for the Future
I think Natively is unnecessarily being restricted by this architecture as data is not remembered in the frontend between pages (if you e.g. go to some page, change some settings, go to another page and return to the first one, you have to change the same settings all over again), and each page load contains all the data the page needs, thus different pages who share data needlessly load the same data over and over again. Therefore, my plan is to turn Natively into a Single-Page Application backed by a Redux store. This way, data that is loaded once can be reused on other pages as well. [Disclaimer: I know this is not 100% true - e.g. the browsing mode will probably not keep all the loaded data in the frontend if you browse hundreds of media
But I hope you get the idea.]
Currently Ongoing Work
Alright, you may think, while Brandon and Mathew were busy cleaning up data, fixing bugs and doing a hundred other useful things, what has Nicole been up to during the past three weeks? – I have been busy as well, it’s just that unfortunately my work is currently not yet visible. I’m working on transforming the Dashboard page into an SPA, and I must say it’s coming along nicely! It’s just a lot more dialogs than I had envisioned
so it will take a bit of time until it’s done. I’m also laying the foundations for the data store at the same time, plus transforming the code to TypeScript, adding some tests here and there (but that’s not my main focus right now – it will become more important once the first rough transformation is done).
What can you do to help?
I already feel everybody is currently helping so much by reviving the discussions around critical items - thank you all!
I know there are the bug reports and feature requests waiting for us, but sometimes an urgent discussion is what will really push us into action (see the dreaded spoiler bug
). So please keep them coming!
At the moment I would like to know your gripes with the Dashboard (as that’s what I’m focusing on at the moment). If there is any bug report or feature request I might have overlooked, please drop a link or write a comment in this thread to bring it to my attention. I can’t promise we will fix it soon, but we’d like to know, at the very least.
Also, once the Dashboard page is nearing completion, I might want to reach out to a few daredevils who would like to give it a thorough whirl, unearthing unexpected behaviour due to the new architecture. If you are interested in being a beta tester, please let me know here as well!
And with that , let me have a look into the next component to transform ![]()