Ivan Reese
Living Canvas is a visual code analysis feature that displays function call graphs as an interactive, Figma-like canvas. It helps developers understand code structure, relationships, and execution flow.There's a nice video on that page which shows how you can interact with this visualization to browse through a codebase, viewing relationships between units of code and jumping to definitions. Pretty nice! But… but but… they describe it as "figma-like". If this were actually figma-like: • I'd want to be able to write / draw on the canvas, to leave myself notes about the structure of the codebase. • I'd want this canvas to be a collaborative space, so that other people could join me as we talk about and make notes about the architecture of our project. • I'd want to be able to embed other media, like links to docs, github issues, pdfs, ADRs, etc, and pepper them around the graph. • I'd want to be able to group nodes as I see fit, rather than merely by file. • I should be able to move nodes freely with the mouse. Annotations on the canvas should stay where I put them, because spatial arrangement is profoundly meaningful. But I should also be able to attach things to a node, so if I move it, the things go with it. (Final Cut Pro X's timeline makes pretty deep / fascinating use of these sorts of attachments, wildly different from all other video editors) • I want to be able to meaningfully edit the nodes. This view shouldn't just be a viewer. I want to be able to refactor a function by (eg) double clicking a node to view its source code, selecting some of that code in the text editor, then dragging it out into an empty spot on the canvas, typing name for a new function, and having a reference to that name appear in place of the selected code. This is a lisp, so it should be able to do a pretty good job of handling this sort of structured edit. • I want other views, not just functions-as-nodes. Maybe a view of variables. Maybe a view of tests. Maybe a view of types / data structures. Figure out how to make these meaningfully spatial, and what affordances they should have. Figure out how to use transclusions so that I can sort of "peek around the corner" from one of these views into another view. • let me lasso some nodes in the canvas, create an isolation boundary around them, then let me feed some data in at one point and see what data pops out — sort of like a smoke test, but where I can just visually pick both the outer and innermost depth of the graph to be interested in, without having to (eg) create stubs / mocks / doubles. (this idea occurred naturally from thinking, for like 5 seconds, about drawing shapes around my code in this graph. would love to see what we could do if we thought about it for 5 minutes.)
Konrad Hinsen
12/16/2025, 9:47 AMIvan Reese
David Alan Hjelle
12/17/2025, 2:19 PMIvan Reese
Konrad Hinsen
12/17/2025, 4:06 PMshalabh
12/17/2025, 7:52 PMKonrad Hinsen
12/18/2025, 7:42 AM