egoist/godraw
Productivity & UtilitiesA native Go whiteboard that reads and writes tldraw files, without a web view or JavaScript.
Project overview
godraw is a local, native whiteboard modelled on tldraw, built in Go on top of MyGo's native UI. It runs without a web view or JavaScript and reads/writes tldraw's .tldr files, so it can be used alongside tldraw rather than only as a replacement. It is an independent reimplementation and is not affiliated with tldraw, Inc.
It covers a broad drawing workflow: select/hand/draw/eraser, arrow, text, note, image, line, highlighter, laser, frame and 20 geo shapes; multi-selection and brush selection; move, resize, rotate, flip, duplicate, group/ungroup, lock, align, snapping and grid. Documents get their own window, autosave, crash recovery, Open Recent and external file-change pickup. Export is available as PNG or SVG for the selection or the page. See the full tool and editing list in the README.
It suits people who want a native desktop whiteboard for tldraw-compatible files, especially those who prefer a Go application over a browser-based editor.
Try it
Prerequisites: a Go toolchain. From a checkout of the repository:
go run . # start a new drawing
go run . drawing.tldr # open an existing file
To see a prepared example with three pages — a poster with a live diagram, a generative flow field, and a style sheet:
go run . examples/showcase.tldr
The showcase can be regenerated with go run ./examples/showcase (showcase instructions). For a packaged macOS app and .dmg, use go tool mygo build; tests run with go test ./... (run commands).
tldraw compatibility
Files are written at the version of @tldraw/tlschema 5.6.0, and tldraw migrates them on open. Records or fields godraw does not model — unknown shape types, record meta, unedited rich text — are preserved and written back. Unknown shape types such as embeds, bookmarks and video appear as labeled boxes (compatibility notes).
Known differences:
- Rich text is displayed as plain text; editing it saves plain paragraphs.
- The clipboard is godraw's own, so shapes do not paste into tldraw. Move drawings between apps via
.tldrfiles. - Hand-drawn strokes and arrow routing use godraw's own algorithms, so they are similar to but not identical to tldraw's.
- SVG export names fonts rather than embedding them.
Not supported
Image cropping, note clone handles, video playback and multiplayer are not implemented. The README does not declare a license, so the terms for reuse and redistribution are not specified there.
HotRepo's take
The repository entered HotRepo's new-project list on 2026-11-02 with 112 stars and 8 forks, all gained in a growth window from 09:47 to 17:45 UTC that day. No GitHub daily-rank record is available, and the single snapshot only establishes that day's count, not a trend. The notable technical fact is the scope of the native implementation: a tldraw-compatible .tldr reader/writer and drawing UI in Go, with unknown records preserved and the document layer tested separately from the UI (layout).
Written by AI from the project's README, updated . The project's own docs are the source of truth.