Skip to content

incubyte/bloom-editor

Repository files navigation

Bloom Editor

A clean, distraction-free blog editor built as a desktop app. Write beautifully, organize effortlessly, export anywhere.

Built by Incubyte.

Features

  • 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+K to 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

Tech Stack

  • Tauri v2 — Lightweight desktop runtime (Rust backend)
  • React 19 + TypeScript
  • Tiptap — Rich text editor framework
  • Vite — Build tooling
  • Vitest — Testing (118 tests)

Getting Started

Prerequisites

Run

git clone https://github.com/incubyte/bloom-editor.git
cd bloom-editor
npm install
npm run tauri dev

Test

npm test

Project Structure

src/
├── editor/       # Tiptap editor, extensions, export
├── storage/      # Document persistence (.bloom files in ~/Documents/Bloom/)
├── shell/        # Command palette, keyboard shortcuts, theme
└── plugins/      # Plugin registration API

Plugin 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.

License

MIT


Made with care by Incubyte

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages