Large project walkthrough
For a large, interconnected app, the graph is a map, not a poster. The goal is not to understand everything at once: it is to land somewhere, see local context, and walk outward.
The mental model
Section titled “The mental model”Think in three layers:
| Layer | What you see | When to use it |
|---|---|---|
| Folders | Cluster bubbles by directory | Orientation: “where does this feature live?” |
| Feature slice | One expanded folder + neighbors | Understanding a module |
| Node | Single component/hook + details panel | “What does this file actually do?” |
Recommended setup
Section titled “Recommended setup”Turn these on and leave them on for large projects (500+ nodes):
-
Cluster folders (on by default):
Shift+Cto toggle
Keeps the canvas at folder granularity until you deliberately drill in. -
Renders-only edges: hide imports and uses in Graph controls
The render tree is how React composes UI. Import/use edges on a monolith look like spaghetti. -
Dim distant nodes:
Shift+D
When something is selected or spotlit, everything else fades. You get a local neighborhood instead of the whole maze. -
Tree down layout:
Shift+Lto cycle
Reads top-to-bottom like a component hierarchy. Tree right works when tracing a horizontal flow. -
Focus on select: leave enabled
Clicking something recenters you so you do not pan-hunt after every selection.
Workflows
Section titled “Workflows”I am new to this codebase
Section titled “I am new to this codebase”- Open Entry points in the sidebar → click
main.tsx/layout.tsx - Use Show from entry to highlight the bootstrap path
- Scan Top folders: click the biggest one that sounds like your feature
- Click the folder cluster on the canvas → expands incrementally (24 nodes at a time on large graphs)
- Click a node → details panel shows connections, props, and source preview
I am working on X: where does it plug in?
Section titled “I am working on X: where does it plug in?”- Search for the component or hook name
- On large graphs this switches to subgraph mode: matches, their folder clusters, and nearby connections
- Search auto-reveals matches inside collapsed folders and highlights the folder bubble
- Enable dim distant if the subgraph is still busy
- Check Hubs: shared dependencies many features touch (Button, Layout, API client, etc.)
I changed this file: what breaks?
Section titled “I changed this file: what breaks?”- Search or click the node
- Details panel → incoming connections (who imports, renders, or uses this)
- Spotlight the node from Hubs or the entry list to keep focus while exploring
I am completely lost
Section titled “I am completely lost”- Collapse all folders (Graph controls)
Shift+F: fit the visible graph- Start over from search or a folder name you know
- Or analyze a smaller scope:
pnpm arclens analyze ./src/features/loans
Shortcuts
Section titled “Shortcuts”| Shortcut | Action |
|---|---|
Ctrl/Cmd+K |
Command palette: jump to any node by name |
Shift+C |
Toggle cluster folders |
Shift+D |
Toggle dim distant / neighborhood focus |
Shift+L |
Cycle layout (tree down ↔ tree right) |
Shift+F |
Fit entire visible graph |
F |
Focus selected node |
| Click cluster | Expand folder (incremental on large graphs) |
Shift+click cluster |
Collapse folder |
What not to do
Section titled “What not to do”- Do not turn off clustering on a 500+ node graph unless you are debugging layout itself
- Do not show all edge types at once: imports + renders + uses on a monolith is unreadable
- Do not expect the full graph to be legible: even dagre cannot make a dense app look like a 10-node demo
- Do not use the graph as your only navigation: pair it with search, the details panel, and your IDE
Onboarding tip for teams
Section titled “Onboarding tip for teams”Spend 10 minutes with folders + entry points + search. Pick one feature folder, expand it, click three nodes, read their incoming/outgoing connections. You will not know the whole app: you will know one vertical slice, which is enough to start contributing.
That matches the product goal: understand an unfamiliar app in under 10 minutes, not memorize every edge.
Scope tip
Section titled “Scope tip”If the full repo graph is too dense, analyze a subfolder:
pnpm arclens analyze ./src/features/onboardingpnpm dev:viewerYou get a focused graph without the rest of the monolith competing for attention.