Skip to content

Repository files navigation

Notehub Logo

Notehub.md

🐧 The Linux of Note-Taking
A modular, plugin-first markdown editor that you can extend infinitely

Version License Platform Tauri

Features • Quick Start • Plugins • Architecture • Contributing


✨ Features

🔌 Plugin-First Architecture

Everything is a plugin. The core is minimal — all features (editor, explorer, themes) are implemented as plugins that can be replaced or extended.

🎨 Live Preview Editor

See formatting as you type. Markdown decorations, WikiLinks, and callouts render inline while editing.

🧩 Custom Widgets

Create interactive React components that render inside your notes. Progress bars, buttons, status badges — if you can build it, you can embed it.

⚡ Hot-Reload Plugins

Develop plugins with instant feedback. Save your code and see changes immediately — no restart required.

🎭 Theming System

Register custom themes with full control over colors, fonts, and styling. Switch themes on the fly.

🔐 Microkernel Design

Plugins run in isolation. A buggy plugin can't crash the core. Safe, stable, extensible.


🚀 Quick Start

Installation

Method Description
Windows Installer Download .msi from Releases
Portable Download .zip, extract, and run Notehub.exe

Development

# Clone the repo
git clone https://github.com/khton-tech/notehub.md.git
cd notehub.md

# Install dependencies
pnpm install

# Run in development mode
pnpm dev:desktop

🧩 Plugin Development

Notehub is designed for extensibility. Create your own plugins to add features, widgets, themes, and more.

import { NotehubPlugin, PluginContext } from '@notehub/api';

export default class MyPlugin extends NotehubPlugin {
    async onload(ctx: PluginContext): Promise<void> {
        // Register an API
        ctx.registerApi('my-plugin:greet', (name: string) => `Hello, ${name}!`);
        
        // Subscribe to events
        ctx.subscribe('explorer:file-selected', (payload) => {
            console.log('File selected:', payload.path);
        });
    }
    
    async onunload(): Promise<void> {
        // Cleanup is automatic!
    }
}

📚 Documentation

Language Link
🇬🇧 English Plugin Developer Guide
🇷🇺 Русский Руководство разработчика плагинов

🏗 Architecture

┌──────────────────────────────────────────────────────────────┐
│                      NotehubCore                             │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────────┐    │
│  │   EventBus   │  │    ApiBus    │  │  Plugin Registry │    │ 
│  │  (pub/sub)   │  │  (RPC calls) │  │  (lifecycle)     │    │
│  └──────────────┘  └──────────────┘  └──────────────────┘    │
└──────────────────────────────────────────────────────────────┘
         ▲                  ▲                   ▲
         │                  │                   │
    ┌────┴────┐       ┌────┴────┐        ┌──────┴─────┐
    │  Logger │       │  Editor │        │  Explorer  │
    │  Plugin │       │  Plugin │        │   Plugin   │
    └─────────┘       └─────────┘        └────────────┘

Core Packages

Package Description
@notehub/core Microkernel with EventBus and ApiBus
@notehub/api Public SDK for plugin development
apps/desktop Tauri-based desktop application

Plugin Categories

Category Examples
System Logger, Config Manager, State Manager, Synapse (plugin loader)
UI Theme Manager, Layout Manager, Settings, Dialogs
Features Editor, Explorer, Backlinks, About

🤝 Contributing

We welcome contributions! Notehub is Open Source and Copyleft (AGPLv3).

Ways to Contribute

  • 🐛 Report bugs — Open an issue
  • 💡 Suggest features — Start a discussion
  • 🔧 Submit PRs — Check open issues
  • 📖 Improve docs — Help us write better guides

Development Resources


📄 License

GNU Affero General Public License v3.0 (AGPL-3.0)

Copyright © 2026 Notehub Contributors

If you modify and distribute Notehub, you must share your changes. See LICENSE for details.


Made with ❤️ for people who love plugins and markdown

About

No description, website, or topics provided.

Resources

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages