[mirror] A local-first desktop markdown writer with grammar checking, at proto integration, and more github.com/stormlightlabs/writer/releases
atproto codemirror markdown tauri rust react
TypeScript 70%
Rust 27%
CSS 2%
Nunjucks <1%
JavaScript <1%
HTML <1%
Just <1%

README.md

Commonplace #

Commonplace is a distraction-free markdown editor.

Split-pane markdown editor with live preview

Highlights #

  • Markdown editor with live preview, split view, preview-only mode, and focus mode
  • Workspace model built around user-selected folders ("locations")
  • Sidebar file management with drag-and-drop moves, nested folders, and context menu operations
  • Multi-document tabs with Rust-backed session restore
  • Rule-based writing assistance with style check diagnostics and parts-of-speech highlighting
  • Quick Capture window (#/quick-capture) for global shortcut capture flows
  • Export as PDF, DOCX or plaintext/markdown with a preview
  • Import Tangled strings & Github gists into your workspace

File Management #

Move documents across folders and locations, create nested directories, and manage files from the sidebar without dropping into Finder or Explorer.

Style Check #

Real-time style feedback with inline decorations for filler words, redundancies, and clichés.

Style check highlighting in the editor

Focus Mode #

Typewriter scrolling and sentence/paragraph dimming for distraction-free writing.

Focus mode with paragraph dimming

Quick Capture #

Global hotkey opens a capture window from anywhere on your system.

Quick capture window

AT Protocol integration #

Import Tangled strings into your workspace.

Tangled Import

Export #

Export polished PDFs with inline preview, Word-compatible DOCX files, clean plaintext, or save the raw markdown source.

PDF export dialog

Development #

Documentation
Tech Stack
  • Frontend: React 19, TypeScript, Vite, Zustand, CodeMirror 6, Tailwind CSS

  • Backend: Tauri 2, Rust workspace (core, markdown, store)

  • Testing: Vitest + Testing Library (frontend), cargo test (Rust)

  • Integrations: AT Protocol integration via jacquard. Github via octocrab.

Development Commands
pnpm install
pnpm tauri dev

Useful commands:

pnpm lint
pnpm check
pnpm test:run
cargo test
Release

Before cutting a release, update the app version in package.json, src-tauri/Cargo.toml, and src-tauri/tauri.conf.json, finalize CHANGELOG.md, and follow docs/release.md.