Offline desktop Markdown reader built with Tauri 2 + React + TypeScript.
The app is functional today. It provides a two-pane reading surface: raw Markdown input on the left and a rendered reader pane on the right, with local persistence for both the document draft and reader settings.
- edit or paste raw Markdown in a textarea
- render Markdown into a sanitized reading view
- adjust reader settings:
- font family
- font size
- line height
- content width
- theme (
paper,sepia,dark)
- persist the current draft in local storage
- persist reader settings in local storage
- show basic reading stats:
- word count
- estimated reading time
- reset the document and settings to defaults
- Markdown rendering uses
markdown-it - rendered HTML is sanitized with
dompurify - raw HTML inside Markdown is disabled
- the app currently runs as a split-pane reader/editor shell
- persistence is frontend-side for now; no Tauri storage plugin is in use yet
src/: React app UI and reader behaviorsrc-tauri/: Tauri desktop shelldocs/: planning notes that still describe intended follow-on work
pnpmViteReactTypeScriptTauri 2
Install dependencies:
pnpm installRun the frontend:
pnpm devBuild the frontend:
pnpm buildRun the desktop app:
pnpm tauri devBuild the desktop app:
pnpm tauri buildThe project target is macOS, but frontend work can be done on Linux. Running Tauri locally on Linux requires the usual GTK/WebKit system packages. If those are missing, pnpm build is still the useful validation path for frontend changes.
These are still useful, but they are planning documents, not an exact statement of shipped behavior: