A lightweight, local-first sticky-note desktop app.
Notefix is a fast desktop app for keeping rich-text notes close at hand. Everything lives in a local SQLite database on your machine — no account, no cloud, no telemetry. An optional server connection (coming in a future release) lets you sync across devices, but the app is fully featured offline on its own.
- Rich-text editor — headings, bold/italic/underline, links, task lists, and syntax-highlighted code blocks, powered by TipTap. Paste or drag in images and resize them inline.
- Folders & organization — nested folders with custom icons and colors, pinned notes, color labels, an archive, and a trash with configurable retention.
- Search & dashboard — instant full-text search and a customizable, drag-and-drop dashboard with recent-notes, due-date, calendar, clock, and statistics widgets.
- Revision history — automatic content snapshots per note, so you can look back at earlier versions.
- Export — export a single note to Markdown, PDF, JPEG, Word (
.doc), or plain text, or export notes in bulk with embedded images. - Native integration — system tray, launch-at-login, frameless floating note
windows, and deep links (
notefix://note/<id>,notefix://new). - macOS widget — a WidgetKit widget that surfaces your pinned and recent notes on the desktop.
- MCP server — an optional, token-protected Model Context Protocol server so AI tools can read and create notes (with a separate write-permission toggle).
- Optional sync (coming soon) — connect to a Notefix server to sync notes across devices over OAuth 2.0 (PKCE); access tokens are stored in the OS keychain, never in plain text. The app works fully locally until you opt in.
- Internationalized — English, German, and French, auto-detected from your system language.
- Tauri 2 (Rust backend) + a React 19 + TypeScript frontend
- Tailwind CSS 4 for styling
- TipTap rich-text editor
- rusqlite (bundled SQLite) for local storage
- reqwest + tokio for networking, keyring for OS-keychain token storage, axum for the MCP server
- i18next for translations
- Node.js 22 or newer
- The Rust toolchain (stable)
- Tauri's platform dependencies — see the Tauri prerequisites guide (Xcode CLT on macOS; WebView2 on Windows; WebKitGTK and friends on Linux)
git clone https://github.com/NoiXdev/notefix.git
cd notefix
npm install
npm run tauri devnpm run tauri dev launches the desktop app with hot-reload for the React frontend.
(npm run dev runs only the Vite frontend in a browser, without the Tauri shell.)
| Command | Description |
|---|---|
npm run tauri dev |
Run the full desktop app in development mode |
npm run dev |
Run only the Vite frontend (browser) |
npm run build |
Type-check and build the frontend bundle |
npm run tauri build |
Build the distributable desktop app |
npm run typecheck |
Type-check without emitting (tsc --noEmit) |
npm test |
Run the frontend test suite (Vitest) once |
npm run test:e2e |
Run the end-to-end tests (Playwright) |
npm run changelog |
Regenerate CHANGELOG.md from Conventional Commits |
Rust tests, formatting, and lints live under src-tauri/:
cd src-tauri
cargo test
cargo fmt --all --check
cargo clippy --all-targets -- -D warningsnpm run tauri buildTauri produces platform-specific artifacts (.dmg/.app on macOS, an installer on
Windows, .deb/.rpm/AppImage on Linux). A local build is unsigned; macOS code
signing and notarization run automatically in CI when the Apple credentials are
present. See docs/macos-signing.md for details.
src/ # React frontend
├── App.tsx # App shell & view routing
├── api.ts # Tauri IPC bindings + event listeners
├── components/ # Editor, note list, dashboard, settings, dialogs
├── hooks/ # Notes/folders/settings state
├── export/ # Markdown / PDF / JPEG / Word exporters
└── i18n/ # en / de / fr translations
src-tauri/ # Rust backend (Tauri)
├── src/
│ ├── lib.rs # App setup & command registration
│ ├── commands.rs # IPC command handlers
│ ├── storage.rs # SQLite store (notes, folders)
│ ├── profiles.rs # Local/server context registry
│ ├── sync.rs / auth.rs # Optional server sync + OAuth/PKCE
│ ├── mcp.rs # Model Context Protocol server
│ ├── images.rs # Image embedding, sharding & GC
│ ├── revisions.rs # Note revision history
│ └── tray.rs / widgetshare.rs / export.rs / …
└── widget/ # macOS WidgetKit extension (Swift)
MIT © noix.dev