DESERTTHUNDER.DEV
~/projects/writer.md
A local-first desktop markdown editor built with Tauri, designed for distraction-free writing with multi-format export.
projects/writer

Commonplace

paused

A local-first desktop markdown editor built with Tauri, designed for distraction-free writing with multi-format export.

RustTauriReactTypeScriptSQLite#productivity#desktop#editor

Commonplace is a local-first desktop markdown editor that keeps your documents on your filesystem. It pairs a React frontend with a multi-crate Rust backend to deliver a fast, native writing experience with professional export options.

Why I Built This

Most markdown editors either live in the browser, rely on cloud sync, or lack the polish of a native app. I wanted something that treats the filesystem as the source of truth, supports focused writing sessions, and can export to PDF, DOCX, and plaintext. Commonplace aims to remedy that as a Tauri-powered desktop app that feels lightweight but packs powerful functionality.

Features

  • CodeMirror 6 editor with live markdown preview and split-pane layout
  • Focus mode with typewriter scrolling and paragraph dimming
  • NLP-powered style checking that flags filler words, redundancies, and cliches
  • Multi-format export (PDF with inline preview, DOCX, plaintext) from a unified dialog
  • Global quick capture hotkey for jotting down ideas from anywhere
  • Full sidebar file browser with drag-and-drop, rename, and nested directories
  • Session persistence that restores open tabs, pane sizes, and layout on relaunch
  • Filesystem watching with automatic sync of external changes

Architecture

Commonplace is organized as a Rust workspace with three crates behind the Tauri boundary:

  • commonplace-core — shared types and error contracts
  • commonplace-markdown — rendering pipelines (comrak for parsing, docx-rs for DOCX)
  • commonplace-store — SQLite-backed persistence and indexed search

The frontend uses Zustand for state management, a selector layer to decouple components from the store shape, and a dedicated ports/ layer for all Tauri command interaction.

Planned Features

  • Custom style rule definitions
  • Plugin system for extended functionality
  • Template support for recurring document types