A JSON Canvas viewer and presentation tool. Load JSON Canvas files in a minimal infinite canvas interface, edit nodes, and present with a laser pointer. My motivation for this was my love for Excalidraw and Obsidian's JSON Canvas. Obsidian's JSON canvas is extremely easy to use for presenting information, while Excalidraw's laser pointer is fantastic to draw attention. This app is aimed at bridging that gap and allowing easy canvases for presentations.
- Renders JSON Canvas files with text, file, link, and group nodes
- Infinite canvas with pan, zoom, and node drag/resize
- Markdown rendering with syntax-highlighted code blocks
- PDF rendering directly inside nodes with scrollable pages
- Laser pointer for presentations (red trail that fades)
- Pan/Move mode for distraction-free navigation
- Link local
.mdfiles and upload image/PDF attachments - Draw edges between nodes via anchor dots
- Multi-select nodes with Shift+click or Shift+drag
- Catppuccin Mocha color scheme with 6 canvas color presets
- Auto-save to
data.json
Here's a screenshot:
docker run -d -p 8080:8080 -v ./data:/data tanq16/walkthrough:latestDownload from releases and run:
./walkthrough serve --port 8080 --data ./my-canvas-dirgit clone https://github.com/tanq16/walkthrough
cd walkthrough
make build
./walkthrough serve- Double-click empty canvas to create a new text note
- Double-click a text node to edit its markdown content
- Press
Lto toggle the laser pointer for presentations - Press
Spaceto toggle pan/move mode for free navigation - Press
Z/Xto zoom out / zoom in - Use
Ctrl/Cmd + scrollto zoom, plain scroll to pan - Drag from anchor dots on node edges to draw connections
Shift+clickto select multiple nodes,Shift+dragfor box selection- Node colors use Catppuccin-mapped presets from the JSON Canvas spec (1-6)
- The
--dataflag sets the working directory fordata.json,.mdfiles, and attachments
