Hello everyone,
I’m very excited for the direction that navigation is going in v16. Modules and sidebars as a semantic layer are transformative. There were some very rough ergonomic edges initially, but v16.50 has been a massive step forward.
That said, the sidebar rail just isn’t for me. I get what the dev team is trying to do, I think, but it just doesn’t reflect the way my organization uses Frappe.
We had already built some navigation features into our kitchen sink app, and v16.50 made most of that code redundant. When refactoring, I decided to spin it off into a separate app. This is still very much a proof of concept, and I wouldn’t recommend using it on a production server, but nevertheless I thought I’d share.
I also made a quick video demo. Apologies for the lousy narration…it’s completely unscripted.
The idea is that the leftmost rail is a fixed list of apps, always the same regardless of context. After clicking on an app, the sidebar lists available modules, and clicking on a module’s name displays its sidebar content.
This approach could probably be improved. The sidebar is doing double duty, and it’s one more click to move between modules in the same app. But, for me at least, the navigation is much more anchored to context.
Additionally, it was important to me to have “custom” apps. Some apps, like HRMS, map the new semantic layer really well, but other apps may span different functions. If you want, you can abstract away completely from the code-defined apps and provide whatever top-level inventory you want.
Regardless, the base hierarchy remains: Apps > Modules > Content.
All thoughts are welcome. I have no plans to distribute this application in any real way, but I’m sharing it here in case it’s useful, either as a proof of concept for design or as an implementation for somebody looking to do something different.
The best thing about frappe has always been its open architecture. I’m amazed by how easy it was to extend what the frappe teams has built to better suit my own individual needs.