Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

A native Go whiteboard that reads and writes tldraw files, without a web view or JavaScript.

120
8
Go
new today

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 .tldr files.
  • 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.