The idea is:
Implement lazy loading for the git push workflow dialog, allowing users to progressively load changes by project instead of loading all workflow diffs upfront.
Lazy load the push dialog in stages:
Click push → Load only the list of projects the user has access to (lightweight metadata call)
Expand a project → Trigger diff calculation for that specific project’s workflows/credentials
Select items → User picks the specific workflows and credentials to push
Click push → Execute push for selected items only
This turns a single blocking 3-5 min load into multiple fast, user-driven interactions where the user only waits for what they actually need.
My use case:
We self-host n8n with two instances synced via a single git branch—one for development, one for production (read-only). Our platform has many projects and workflows. When users click the push button to sync changes to GitHub, it takes 3-5 minutes just to load the diff of all workflow changes before they can even select what to push. This creates a painful bottleneck when users need to make quick iterative changes—each push cycle eats a huge chunk of time.
I think it would be beneficial to add this because:
Scalability - As n8n deployments grow (more projects, more workflows), the current “load everything” approach becomes increasingly unusable
Productivity - Devs often know exactly which project/workflow they changed—forcing them to wait for a full diff of the entire instance is wasted time
UX improvement - Progressive loading gives immediate feedback and control to the user
Resource efficiency - Only compute diffs for what’s actually needed