2026 · Design and code

mdread

A very fast, GPU-rendered Markdown reader for Linux and macOS, built in Rust for large high-DPI screens. Ten percent of the features, all of the speed.

RusteguiOpenGLpulldown-cmarksyntect
mdread rendering its showcase document: an outline sidebar on the left, the reading column in the middle and a files sidebar on the right

Problem

I read a lot of Markdown: READMEs, design notes, plans, and the piles of documents that coding agents produce. Every tool for reading it was an editor with a preview pane bolted on, a browser extension, or an Electron app that takes seconds to open a 20 KB file and then shows it in a narrow column in the middle of a 4K monitor.

Approach

mdread does one thing: open a file, read it, close it. It is about 4,300 lines of Rust. egui draws everything through OpenGL, pulldown-cmark parses, syntect highlights. The document is parsed once into a tree of blocks and only the blocks on screen are laid out, so a 1,100-block document scrolls like a 20-block one. The layout uses the whole width of a large screen: an outline that tracks the section you are reading, a reading column capped at a comfortable measure, and the other Markdown files in the folder on the right.

Outcome

  • Cold start to first frame in about 110 ms; an 800 KB document parses in about 4 ms and renders in under 2 ms per frame.
  • Full GitHub-flavoured Markdown, crisp text at fractional Wayland scaling, live reload, dark and light themes, vim-ish keys.
  • Open source on GitHub; a Mac port arrived as a pull request within a day of publishing.
Work with me

Need a CTO in the room?

Fractional, interim or full-time: technical leadership, AI strategy you can actually ship, and honest due diligence. The first conversation is free, and if I can’t help I’ll introduce you to someone who can.

Cape Town · UTC+2 · remote