So, very clever! But the thing is, I've been grappling with this exact same problem with a monolithic app I've been working with the client to "modularise" into separate apps. So they all share a menu. And of course, the menu items that can be seen are dependent on the app you're actually on, and what security permissions the user has (it's legacy is a two-level tab interface from APEX 4 - ugh!). So, I defined it in a database view (workspace applications share database schemas right?), and each application now just references its navbar as a dynamic list: select * from v_navbar_list; Always happy to see different ways of achieving this though. :)