Skip to content
imitravanuPublic

About

Offline-first, keyboard-friendly notes desktop app built with Tauri 2, Rust, React & SQLite (Liquid Glass UI)

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

NoteFlow Banner

Version Download .deb Linux Tauri Rust React TypeScript SQLite MIT License

NoteFlow is a fast, offline-first, keyboard-centric notes app for the Linux desktop.
Engineered with Tauri 2 · Rust · React · TypeScript · SQLite, featuring an Apple OS 27 Liquid Glass design system, hardware-accelerated 3D perspective tilt, and dynamic cursor-tracking specular lighting.


✨ Features at a Glance

🧲 Living 3D Perspective Tilt & Specular Spotlights

  • Dynamic 3D Tilt: Hardware-accelerated perspective tilt (perspective: 1000px) that pitches and rolls cards with mouse movement and smoothly springs back on mouse leave.
  • Dual-Layer Cursor Spotlight: An interactive optical spotlight (sharp crystal specular core + chromatic halo) tracks the cursor across frosted glass in both Light and Dark modes.
  • Tactile Element Micro-Interactions: Action pills, checklist capsules, tag chips, selection rings, and titles elevate and react organically when hovered.

💎 Apple OS 27 Liquid Glass Design System

  • Continuous Squircle Geometry: Smooth continuous curvature with macOS-inspired precision radii.
  • Refractive Frosted Blur: Deep multi-layer backdrop filters (blur(28px) saturate(190%)) with specular rim lighting and ambient luminous card glows.
  • Luminous Jewel Tints: 8 vibrant color personalities (Default, Crimson Red, Amber Tangerine, Sun Gold, Emerald Apple Green, Cyan Ocean, Sapphire Blue, Electric Violet).
  • Adaptive Canvas Theme: Seamless Light, Dark, and System theme synchronizations.

⚡ Offline-First SQLite Engine (Zero Telemetry)

  • Local SQLite Database (WAL Mode): Notes are read and written locally through Rust and rusqlite.
  • Debounced Autosave: Changes save after a brief pause; failed writes retry and keep the draft open. Ctrl+S forces an immediate save. An abrupt app exit can lose edits still waiting for their first save, and a power failure can lose the latest database commit.
  • Local notes: No analytics or account is required. Your notes stay at ~/.local/share/com.noteflow.app/noteflow.db; update checks contact GitHub without sending note contents.

🔔 One-Shot Reminders

  • Schedule from the editor: the bell offers quick presets ("In 1 hour", "Tomorrow 9:00") or an exact date and time; a pending reminder shows as an active toolbar button and a bell badge on the note card ("Overdue", "in 25m", "tomorrow 09:00").
  • Recoverable in-app alerts: reminders due while NoteFlow is closed appear on the next launch. The alert stays visible until you open or dismiss it, and its schedule remains in SQLite until then. Closing or crashing first causes it to appear again. Archived and trashed notes stay quiet.

🔍 Instant Spotlight Search (Ctrl+K)

  • Substring and keyword search across title, body content, checklist items, and tags with real-time match highlighting.
  • Backed by FTS5 trigram indexes with Unicode case folding, so CAFÉ finds Café. One- and two-character searches scan the selected view with Unicode case folding.

🛡️ Safety, Multi-Select & Undo

  • Undo for note actions: Ctrl+Z and snackbar Undo can reverse supported note actions. Text editing uses the editor's native undo.
  • Soft Trash Recovery: Deleted notes move to Trash with 1-click restore or permanent delete confirmation.
  • Batch Selection: Multi-select notes via Shift+Click, Ctrl+Click, or Ctrl+A for bulk tagging, coloring, archiving, or deletion.
  • Export & Backup: Export individual notes as clean Markdown (.md) or export the workspace as JSON (up to 128 MB).

🔄 Self-Updating Releases

  • Update on your terms: a launch-time check against GitHub Releases surfaces new versions as a toast — one click downloads the signed update, verifies its minisign signature, installs, and relaunches (with live progress).
  • No dead ends: the AppImage updates in place; the system .deb package links straight to the release page. A manual check lives in Settings → Software Update.

⌨️ Keyboard Shortcuts

Shortcut Action Scope
Ctrl + N Create new note Global
Ctrl + K Focus instant search Global
Ctrl + S Save / flush editor immediately Editor
Ctrl + Shift + P Toggle Pin status Editor / Selection
Ctrl + Shift + F Toggle Favorite (Star) Editor / Selection
Ctrl + Z Undo last action Global
Ctrl + A Select all notes Grid
Delete Move selected note(s) to Trash Grid
Esc Close Editor / Clear search / Exit selection Modal / Global
? or Ctrl + / Open Keyboard Shortcuts Cheat Sheet Global

🏗️ Architecture

┌────────────────────────────────────────────────────────┐
│               React 18 + TypeScript UI                 │
│      Zustand Stores · Apple OS 27 CSS Glass System     │
└──────────────────────────┬─────────────────────────────┘
                           │ Typed Tauri IPC Invoke
                           ▼
┌────────────────────────────────────────────────────────┐
│                   Tauri 2 / Rust Core                  │
│       Command Handlers · Validation · Business Logic   │
└──────────────────────────┬─────────────────────────────┘
                           │ rusqlite Connection
                           ▼
┌────────────────────────────────────────────────────────┐
│                  Local SQLite Database                 │
│         WAL Journaling · Foreign Keys · Migrations     │
│         FTS5 Trigram Search Indexes (schema v3)        │
│         Path: ~/.local/share/com.noteflow.app          │
└────────────────────────────────────────────────────────┘
src/                      React frontend
  components/             NoteCard, NoteEditor, TopBar, Sidebar, ShortcutsModal, SelectionBar…
  pages/                  NotesPage, SettingsPage
  hooks/                  useTheme, useKeyboardShortcuts, useAppInit, useReminders
  store/                  Zustand state management (uiStore, notesStore)
  services/api.ts         Typed Tauri command invocations
  styles/                 Apple OS 27 design tokens (global.css) & components.css
  utils/                  Highlighting, undo stack, formatting, reminders, markdown exporter

src-tauri/src/            Rust backend
  commands/               Tauri command interfaces (notes, tags, settings)
  services/               Note & tag query operations and business logic
  database/               Connection management (WAL mode) & SQL migrations
  models/                 Note, Tag, ChecklistItem structs & patches
  error/                  Error mapping to user-friendly messages

🚀 Installation & Quick Start

Option 1: 1-Click Install (.deb Package)

For Ubuntu, Debian, Linux Mint, Pop!_OS, and Debian-based distributions:

  1. Download the installer:
    👉 Download NoteFlow v1.7.0 (.deb)

  2. Install via terminal:

    sudo dpkg -i noteflow_1.7.0_amd64.deb

    Or simply double-click the .deb file in your Linux file manager (Nautilus/Dolphin).

  3. Launch:
    Search for NoteFlow in your desktop application menu or run noteflow from the terminal.


Option 2: Build from Source

Prerequisites

  • Node.js 18+ and npm
  • Rust 1.80+ (curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh)
  • Linux build dependencies (Debian/Ubuntu):
    sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev

Clone & Run

# Clone the repository
git clone https://github.com/imitravanu/Noteflow.git
cd Noteflow

# Install frontend dependencies
npm install

# Run Vite development server
npm run dev

# Run desktop application with live reload
npm run tauri dev

Quality & Tests

npm run typecheck    # TypeScript verification
npm test             # Vitest frontend tests
cd src-tauri && cargo test   # Rust SQLite integration tests

Build Production Executable

npm run build:app

Binaries are output to src-tauri/target/release/noteflow.


📄 License

This project is licensed under the MIT License — Copyright (c) 2026 Mitravanu.

About

Offline-first, keyboard-friendly notes desktop app built with Tauri 2, Rust, React & SQLite (Liquid Glass UI)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages