glance
product · 2026A fast markdown viewer and quick editor, ported faithfully from the PowerToys Peek renderer.
JavaScript · PWA · Tauri
Problem
I read a lot of markdown, and opening a full editor to look at a .md file is more ceremony than the task deserves. The best quick preview I'd used was the one inside Microsoft PowerToys Peek: hit space, see the file, move on. I did not want to write another markdown app. The question was whether Peek's previewer could be pulled out and stood up on its own, on the web.
Approach
I read the PowerToys source. Peek's previewer turns out to be a Markdig pipeline plus a small block of theme CSS, rendered in WebView2. I reproduced that on the web: Markdig mapped to markdown-it feature by feature, the light and dark theme CSS lifted verbatim (MIT, attributed), fidelity checked with a smoke test. Then it went past Peek, with syntax highlighting, in-document find, folder mode and live reload, built as a zero-build vanilla-JS PWA. The same web core is wrapped in a Tauri shell for the desktop, with real .md file associations.
Key decisions
- Zero-build, no framework. Vanilla ES modules, no bundler, nothing to compile. Speed was the requirement, so the architecture stays close to the browser platform.
- Tauri over Electron for the desktop build. It reuses the OS webview instead of shipping a Chromium runtime, so the same web core ships at a fraction of the weight.
- Editing stays dumb on purpose: a raw textarea and a live preview, nothing else. Ren already exists, and glance was not allowed to grow into a second notepad.
- The desktop build shipped a blank screen, because runtime CDN imports stalled inside WebView2. Fixing that turned up a mispinned dependency which had silently broken math rendering as well. Every dependency is vendored now, and there is no runtime CDN at all.
Outcome
The web and PWA build is complete and working. The desktop build is wired up, with a CI pipeline producing Windows, macOS and Linux installers, but it's an unpublished draft I haven't fully verified, so I won't call it released. No users and no metrics either, because glance is a personal tool. What I'd point at is the port, pulling one specific renderer out of a very large Microsoft codebase and reproducing it honestly, then running that single web core in both the browser and a desktop shell.