HexoManager
Desktop Hexo multi-site management tool — manage multiple Hexo sites through a graphical interface, covering the entire workflow from writing to publishing.
Project Overview
HexoManager is a cross-platform desktop application built with Tauri 2.x + React 18 for centrally managing multiple local Hexo blog sites.
The traditional Hexo workflow requires repeatedly running hexo new, hexo g, and hexo d in the terminal. When managing multiple sites, you also have to switch between directories and manually maintain CI configuration files for each platform. HexoManager brings these operations together in a graphical interface:
- Keep all sites in one place and switch contexts with one click
- Edit articles with Monaco Editor and preview the rendered Markdown in real time on the right
- Edit
_config.ymlvisually while retaining the original YAML mode - Generate CI/CD configuration files for 7 major deployment platforms with one click, including edge-layer origin-fetch strategies
- Automate the entire build, commit, push, and deployment workflow with complete log recording
Data security: All site data is stored in the application’s local SQLite database, while site source code always remains in the original directories you specify. HexoManager never copies or uploads them.
Features
| Module | Capabilities |
|---|---|
| Workspace | Current site statistics overview, recent articles, recent deployment timeline, and quick site switching |
| Site Management | Four-step creation wizard, import existing sites, card/table dual views, detailed statistics, copy, backup, and deletion with optional file cleanup |
| Article Management | Monaco Editor + real-time Markdown preview, three layouts, 30-second auto-save, Ctrl+S, metadata and version history, publish/unpublish, and batch import |
| Categories & Tags | Category and tag distribution statistics, article associations, renaming, merging, deletion, tag cloud, and category tree |
| Configuration Management | _config.yml visual form + bidirectional raw YAML editing, real-time syntax validation, read-only preview, export/import, diff comparison, and backup restoration |
| Theme Management | Installed theme grid, theme marketplace, npm/git installation methods, and theme configuration YAML editing |
| Plugin Management | Toggle between installed-plugin table/card views, 12 recommended plugins with category filtering, installation command preview, and plugin details |
| File Management | Directory tree + file list/editor switching, breadcrumb navigation, creating files and directories, renaming, deletion, and hidden-file toggle |
| Local Preview | Environment detection, starting/stopping hexo server, multiple ports in parallel, and build operations (clean/generate/build/deploy) with real-time logs |
| Deployment Configuration | Seven major platform cards, build and repository configuration, edge-layer strategies (EdgeOne / Cloudflare / dual edge), configuration preview, and one-click writing |
| Git Operations | Status overview, change list with staging/discarding, commits with quick feat/fix prefix tags, history and rollback, remote repository configuration, and diff viewing/export |
| Deployment Records | History table with filtering/sorting/search, log details drawer, export, rollback, success rate, and duration statistics |
| About & Updates | Software information, technology-stack layered view, update checks, downloading and installation, automatic check toggle, version ignoring, changelog, and open-source licenses |
| Message Center | Notification list grouped by type, unread filtering, and preview service management with start/stop controls |
| Preferences | Theme mode, editor font size, auto-save interval, confirmation for dangerous operations, default values for new sites, and local data management |
Technology Stack
Frontend
| Component | Version | Description |
|---|---|---|
| React | 18.3.1 | UI framework |
| TypeScript | 5.7.3 | Strict mode with any disallowed |
| Vite | 5.4.11 | Build tool |
| Ant Design | 5.29.3 | Component library with Chinese locale and light/dark theme algorithms |
| Tailwind CSS | 3.4.19 | Utility-first styling, with preflight disabled to avoid conflicts with the AntD reset |
| Zustand | 4.5.7 | State management with 6 stores |
| React Router | 6.30.6 | Hash routing adapted to Tauri’s local protocol |
| Monaco Editor | 4.7.0 | Code and Markdown editor |
| react-markdown + remark-gfm | 10.x / 4.x | Markdown rendering |
Backend (Rust)
| Component | Version | Description |
|---|---|---|
| Tauri | 2.x | Desktop framework |
| rusqlite | 0.32 | SQLite bindings (bundled included, with no system dependencies; WAL mode + foreign-key constraints) |
| tokio | 1.x | Asynchronous runtime |
| handlebars | 6.x | CI configuration template rendering (include_str! inlined at compile time) |
| serde_yaml | 0.9 | Reading and writing Hexo site and theme YAML configurations |
| walkdir | 2.x | File-tree traversal |
| reqwest | 0.12 | Update checks (rustls-tls) |