Hey Jon, thanks heaps for taking time to analyse all this and experiment. Rebuilding the whole admin interface sounds huge to me at this point, and to a degree not worth it. We have a lot of cool and useful code that would be a lot of work to replace (scattered in a lot of crappy legacy code as well). But I can also see a lot of opportunities here. I’m excited about the possibility to finally tackle the complexity we got from extending the Spree admin interface for enterprises and then limiting it with permissions. It’s currently a chunk of software that does many things and only a few things well.
We have many different clients and we support many different business models. That makes our current interface complicated. But it can also make a rebuild easier. The simplest form of enterprise is a profile, it doesn’t have products and it doesn’t sell anything. It only needs to update contacts and descriptions. It would be a great start to write a custom user interface just for that. And I believe that it would already be an improvement to direct profile-only accounts to that new interface. Everybody manages to set up a Facebook page. It should be as easy to set up an OFN profile.
The challenge we would have is that one user can have permissions to several enterprises. Maybe we can rethink the workflow in a way that you choose an enterprise and then everything is about that enterprise. It could make everything easier and faster. And if we can integrate this new interface with the current one, making switching between them easy, then we can have a nice iterative migration. Keeping that enterprise specific approach, could also allow for better separation and more efficient work flows. Maybe the product edit screen of a producer should look differently to a shop?
In the end, we are left with the super-admin features which should be in a separate interface as well. It needs the current Settings page, basic user and permission admin and the ability to switch to every enterprise (or log in as user). I’m imagining that to be a lot simpler than what we have at the moment.
A few more thoughts:
Thinking about that first profile interface again, I’m not sure if we even need the Tabler gem here. I’m not familiar enough to judge it’s overall usefulness for the kind of very specific interfaces we are trying to build.
Stimulus, React, latest Angular? I don’t know, the simpler the better, I guess. But also the more similar it is to current technologies, the easier it will be for everybody to deal with all aspects of the code. We don’t want three different JS frameworks in one project.
The new interface should consider the work the Data Food Consortium has done to use similar terms and logic. It could be an opportunity to implement some of the Network 2.0 features without affecting the old interface.