A clean, distraction-free blog editor built as a desktop app. Write beautifully, organize effortlessly, export anywhere.
Built by Incubyte.
- Rich text editing — Powered by Tiptap with support for headings, bold, italic, links, code blocks, lists, and blockquotes
- Document management — Create, switch, and delete documents from the sidebar. Auto-saves as you type
- Command palette — Press
Cmd+Kto search and run any command - Dark mode — Toggle between light and dark themes, or let it follow your OS preference
- Export — Save as Markdown or HTML via native file dialog, or copy Markdown to clipboard
- Zen mode — Hide the sidebar and focus on writing
- Word count and read time — Live stats in the status bar
- Tauri v2 — Lightweight desktop runtime (Rust backend)
- React 19 + TypeScript
- Tiptap — Rich text editor framework
- Vite — Build tooling
- Vitest — Testing (118 tests)
- Node.js (v18+)
- Rust
- Tauri prerequisites for your platform — see Tauri setup guide
git clone https://github.com/incubyte/bloom-editor.git
cd bloom-editor
npm install
npm run tauri devnpm testsrc/
├── editor/ # Tiptap editor, extensions, export
├── storage/ # Document persistence (.bloom files in ~/Documents/Bloom/)
├── shell/ # Command palette, keyboard shortcuts, theme
└── plugins/ # Plugin registration API
Bloom Editor exposes a plugin API for extending the editor with custom commands, editor extensions, export formats, keyboard shortcuts, and UI panels.
import {
registerCommands,
registerCommandHandler,
registerEditorExtension,
registerExportFormat,
registerKeyboardShortcut,
PluginProvider,
} from "./plugins";See src/plugins/index.ts for the full API surface.
MIT
Made with care by Incubyte