4 live 1 building on the bench: Pehra Pro, Snap Receipt last shipped

Projects

QuickPeek

Status
Live
Platforms
macOS 26 or later
Since
May 2026
Store
Mac App Store, listed as "Peek: Markdown JSON Mermaid"
Stack
Swift · SwiftUI · AppKit · TextKit · Quick Look
Last shipped
Links

Press Space in Finder and read it rendered.

QuickPeek renders Markdown, JSON, YAML, CSV and Mermaid on a Mac, in Quick Look and in its own window.

QuickPeek's Quick Look preview on a Mac: this site's design-system.md, rendered, with its headings, a numbered list and a table of colour tokens, and a button to open it in QuickPeek.

Why it exists

I wanted something lightweight: press Space on a file in Downloads or Documents, skim it, and only then open it properly. I couldn't find a free app that did that, so I built one.

What it does

  • Markdown: a clean reader with tables, task lists and an outline.
  • JSON, JSON Lines, YAML: tree, code and raw views.
  • CSV and TSV: a real spreadsheet view with sticky headers, column types, sorting and a schema sidebar.
  • Mermaid: diagrams rendered in place, with zoom and pan, including inside Markdown.
  • Quick Look: the Space bar in Finder, Mail, Messages and AirDrop.
  • Pro, a one-time purchase: edit every format, including split-view Markdown with synced scrolling, and save in place.
  • Pehra Pro's plan for live operations and the live map, a 90 KB Markdown file, open in QuickPeek on a Mac: its 47 headings in an outline down the side, a Mermaid flowchart rendered in place, and code references as links.
    Markdown, with its outline and a Mermaid diagram rendered in place.
  • This site's package.json in QuickPeek's tree view on a Mac: every key listed in a sidebar, and the scripts and dependencies opened out, each value marked with its type.
    JSON in the tree view, with every key in the sidebar.
  • A sample CSV of 1,000 sales records in QuickPeek's table view on a Mac: beside the rows, a schema sidebar lists its 14 columns, each with its type and its count of unique values or its range.
    CSV in the spreadsheet view, with column types and the schema sidebar.

How fast is fast?

A 60 KB Markdown file of 524 blocks: parsed in 6 milliseconds, laid out in 6.5.

  • Native all the way down. SwiftUI and AppKit, with one open-source dependency.
  • Hand-written parsers where it matters. Markdown goes through Apple's swift-markdown. JSON is read byte by byte, keeping key order, duplicate keys and the exact text of every number. YAML is tuned for real Kubernetes, Compose and CI files. CSV sniffs its own delimiter.
  • A code highlighter with no regular expressions, for about 18 languages at roughly five microseconds a line.
  • A custom text layout engine that paints code blocks, quotes and inline chips natively, so selection, find and scroll sync stay native.
  • Mermaid without the lag. Diagrams render off-screen, are cached, and get swapped into the text in place, so find and scroll positions never break.
  • One renderer for the app and Quick Look. The duplicate that had drifted was deleted.

Decisions

Why not just use a web view? #

A web view would have rendered Markdown on day one. Going native meant owning a layout engine and a set of parsers, and building every Markdown feature by hand. For a reader that has to feel like a Mac app, that was the right trade.

Why write your own JSON parser? #

Because no single library keeps key order, duplicate keys and the exact text of every number. A viewer that silently reorders your keys is lying about your file.

Privacy

No analytics. No telemetry. No third-party SDKs. The only network call is the App Store checking your purchase.

The numbers

  • About 13,000 lines of Swift, across 62 commits.
  • One open-source dependency.