Noteva is a lightweight, modern blog system built with Rust. It ships as a single binary, uses SQLite by default, and keeps the editing, theme, and plugin experience simple enough for a personal site while still being extensible.
- Lightweight deployment: one binary, local SQLite by default, optional MySQL and Redis.
- Clean admin dashboard: articles, pages, taxonomy, comments, files, plugins, themes, security logs, backups, and settings.
- Markdown-first writing: preview, syntax highlighting, media upload, image grid, and shortcode support.
- Sandboxed plugins: WASM backend hooks, frontend JS/CSS assets, permissions, settings, storage, and i18n files.
- Framework-agnostic themes: build with React, Vue, vanilla JavaScript, or any frontend stack through the injected
window.NotevaSDK. - Internationalization built in: common admin and default-theme languages are packaged directly.
- SEO basics included: permalink settings, sitemap, RSS feed, robots.txt, and site metadata.
Screenshots use demo content and are intended to show the overall interface and workflow.
| Frontend Home | Reading Page |
|---|---|
![]() |
![]() |
| Article Management | Markdown Editor |
|---|---|
![]() |
![]() |
| Plugin Management | Theme Management |
|---|---|
![]() |
![]() |
For Linux or macOS, the install script detects the platform, downloads the latest release asset, creates the working directories, and can register a system service.
curl -fsSL https://raw.githubusercontent.com/noteva26/Noteva/main/install.sh | bashAfter the first start, open:
http://localhost:8080/manage/setup
Create the administrator account there, then continue in the admin dashboard at /manage.
docker run -d \
-p 8080:8080 \
-v ./data:/app/data \
-v ./uploads:/app/uploads \
--name noteva \
ghcr.io/noteva26/noteva:latestDocker Compose:
services:
noteva:
image: ghcr.io/noteva26/noteva:latest
ports:
- "8080:8080"
volumes:
- ./data:/app/data
- ./uploads:/app/uploads
restart: unless-stoppedRequirements:
- Rust 1.75+
- Node.js 20+
- pnpm
git clone https://github.com/noteva26/Noteva.git
cd Noteva
pnpm run install:all
pnpm run build:frontend
cargo run --bin notevaDevelopment commands:
pnpm run dev:web # admin dashboard
pnpm run dev:theme # default theme
cargo run --bin notevaRelease build:
pnpm run build:frontend
cargo build --releaseNoteva reads config.yml from the working directory. A minimal configuration looks like this:
server:
host: "0.0.0.0"
port: 8080
cors_origin: "*"
database:
driver: "sqlite"
url: "data/noteva.db"
# driver: "mysql"
# url: "mysql://username:password@localhost:3306/noteva"
cache:
driver: "memory"
# driver: "redis"
# redis_url: "redis://127.0.0.1:6379"
upload:
path: "uploads"
max_file_size: 10485760
max_plugin_file_size: 52428800
theme:
path: "themes"
active: "default"See config.example.yml for the full example.
Plugins live in plugins/<plugin-id>/ and are described by plugin.json. A plugin may include browser assets, a WASM backend module, settings schema, editor buttons, and locale files.
plugins/my-plugin/
|-- plugin.json
|-- frontend.js
|-- frontend.css
|-- backend.wasm
|-- settings.json
|-- editor.json
`-- locales/
Backend plugins run in a WASM sandbox through wasmtime. Permissions, hook declarations, storage, and settings are explicit so a plugin can stay isolated from the core application.
Read the full guide: Plugin Development.
Themes live in themes/<theme-name>/. A theme only needs a manifest and a built frontend entry, so it can be implemented with the frontend framework of your choice.
themes/my-theme/
|-- theme.json
|-- settings.json
|-- dist/index.html
`-- preview.png
The runtime injects the window.Noteva SDK automatically. Themes should use that SDK for site data, posts, pages, comments, navigation, settings, and plugin slots.
Read the full guide: Theme Development.
| Document | Description |
|---|---|
| Plugin Development | Plugin package structure, hooks, permissions, WASM bridge, settings, and frontend integration. |
| Theme Development | Theme package structure, SDK usage, settings, dark mode, plugin slots, and compatibility rules. |
| Changelog | English release notes. |
| 中文更新日志 | Chinese release notes. |
| License | License text and additional terms. |
Noteva is intentionally focused: a quiet writing workflow, a compact admin surface, safe extension points, and simple deployment. Features that add visible complexity are expected to justify their place in the product.
If Noteva is useful to you, sponsorship helps keep development moving:
Noteva is licensed under GPL-3.0-or-later with a plugin and theme exception.
Core modifications remain under the GPL. Plugins and themes that interact with Noteva only through the published SDK/API may use their own license. See LICENSE and COPYING for details.







