I'm running an app-of-apps setup in Argo CD where root Applications use an ApplicationSet to create the leaf Applications. Since every generated leaf appears as a top-level Application, the main Applications page becomes a long flat list, and the few root Applications I actually use are easy to lose.
The resource tree for an individual app shows the root-to-child relationship well, but I haven't found a comparable grouped or collapsible view for the overall Applications list. At larger scale, what approaches work best? Do you use labels and filters, separate AppProjects for each root, favorites, naming conventions, or an overlooked view setting? I'm hoping for a "show the roots first and expand when needed" workflow rather than a wall of generated Applications.
4 Answers
There isn’t currently a true collapse-or-group-by-root view for the main Applications page. The practical approach is to make the generated Applications easy to slice: assign consistent labels and put each logical root or ownership boundary in its own AppProject. The project filter is especially convenient because it’s a built-in dropdown, rather than a label query you have to reconstruct each time. Favorites also help for the handful of roots you visit constantly, but the UI doesn’t really hide generated leaves.
Using both worked well for us—an AppProject per root for the main grouping, and a role label such as `root` for a quick roots-only filter. Labels for type, scope, and ownership make the remaining views much easier to manage.
Some teams put an additional root Application in front of the ApplicationSet, creating a root-of-roots structure. That can make ownership and GitOps boundaries clearer, but it won’t magically collapse the generated Applications in the main list. For genuinely large installations, an external catalog or portal such as Backstage can provide a more tailored management view.
Lean heavily into labels and filters. Add labels for things like application type, scope, environment, ownership, and whether an Application is a root or generated leaf. Also configure your ApplicationSet generators to assign the appropriate projects and labels from the start. A little planning up front makes the flat list much more manageable over time.
Naming can provide a small usability boost. Giving root Applications a consistent prefix, such as `00-` or another sorting-friendly convention, keeps them near the top of the alphabetical list. It doesn’t remove the generated Applications, but combined with project and label filters it makes the important entries easier to find.

That’s been the least frustrating setup for us too: a project per root, plus favorites for the roots we use most. There’s no hidden “roots only” mode, unfortunately.