A cross-platform desktop app for viewing and editing Markdown, MDX, JSON, CSV, Excel, and Parquet files. Built with Tauri 2 + React 19.
- Multi-tab file management with session persistence across restarts
- Markdown / MDX viewer with GFM, tables, and syntax-highlighted code blocks
- JSON tree viewer with collapsible nodes and dark/light theme support
- CSV and Excel viewer β sortable columns, global search, in-browser SQL queries; cell editing with copy/cut/paste/delete, undo/redo history, multi-cell selection (click-drag and Cmd+click), column context menu (sort, select, delete), and row split/merge
- Parquet viewer powered by DuckDB-WASM β query large files entirely in-browser
- Monaco editor for Markdown and JSON with live preview
- Command palette (
Cmd+K) β open local files or load any file by URL - File tree sidebar for navigating all open tabs
- Auto-updater β checks for new releases on startup with an in-app install prompt
- Drag-and-drop file loading
- System / Light / Dark theme
Platform support: macOS 12+, Linux (GTK), Windows 10+
cd apps/desktop-app
bun install
bun run tauri devbun run tauri build # production bundle for current platform
bunx tsc --noEmit # type check only| Layer | Library |
|---|---|
| App shell | Tauri 2 |
| UI | React 19 + TypeScript |
| Build | Vite 7 + Tailwind CSS 4 |
| State | Zustand |
| Editor | Monaco Editor (local bundle, no CDN) |
| Markdown | react-markdown + remark-gfm + rehype-highlight |
| JSON | react-json-view-lite |
| CSV / Excel | TanStack Table v8 + PapaParse |
| Parquet | DuckDB-WASM (in-browser query engine) |
| SQL mode | alasql (in-memory SQL on csv table) |
| Icons | Hugeicons |
| UI primitives | shadcn/ui + Radix |
file-viewers/
βββ apps/
β βββ desktop-app/ # Tauri + React desktop application
β β βββ src/
β β β βββ App.tsx
β β β βββ components/
β β β β βββ table/ # DataTable, Header, Toolbar, ContextMenu, StatusBar, VirtualRow, SearchInput, SqlInput
β β β β βββ toolbar/ # Toolbar, ToolbarActions, FormatTabs
β β β β βββ ui/ # Button, Input, Dialog, and other primitives
β β β β βββ workspace/ # FileTree sidebar
β β β βββ hooks/
β β β βββ store/ # Zustand store
β β β βββ utils/
β β βββ src-tauri/
β β β βββ src/lib.rs
β β β βββ tauri.conf.json
β β β βββ capabilities/
β β βββ docs/ # Architecture + component reference
β βββ landing/ # TanStack Start landing page (Cloudflare Workers)
βββ scripts/
| Extension | Viewer |
|---|---|
.md, .markdown, .mdx, .txt |
Markdown |
.json |
JSON tree |
.csv |
CSV table + SQL |
.xlsx |
Excel table + SQL |
.parquet |
Parquet table (DuckDB-WASM) |
MIT β see LICENSE
apps/desktop-app/docs/architecture.mdβ component hierarchy, state, file loading, theme system, Tauri capabilitiesapps/desktop-app/docs/components.mdβ props reference for every component