Skip to content

NoiXdev/notefix

Repository files navigation

Notefix

A lightweight, local-first sticky-note desktop app.

Tauri 2 React 19 TypeScript 5 Rust MIT License


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.

Features

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

Tech stack

Getting started

Prerequisites

Install & run

git clone https://github.com/NoiXdev/notefix.git
cd notefix
npm install
npm run tauri dev

npm 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.)

Scripts

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 warnings

Building

npm run tauri build

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

Project structure

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)

License

MIT © noix.dev

About

A lightweight, local-first sticky-note desktop app built with Tauri. Notes live in a local SQLite database — no account, no cloud, no telemetry.

Topics

Resources

License

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors