drelich 5a925dc50e feat: WebDAV file access and category color sync (v0.2.0)
Major Changes:
- Switch from Nextcloud Notes API to direct WebDAV file access
- Notes stored as .txt files with filename-based IDs for reliability
- Implement safer sync strategy without clearNotes() to prevent data loss
- Add ETag-based conflict detection for concurrent edits
- Add category color sync to .category-colors.json on server
- Show neutral gray badges for categories without assigned colors

Technical Improvements:
- Replace numeric IDs with filename-based string IDs
- Update Note type to support both number and string IDs
- Implement WebDAV methods: fetchNotesWebDAV, createNoteWebDAV, updateNoteWebDAV, deleteNoteWebDAV
- Add CategoryColorsSync service for server synchronization
- Remove hash-based color fallback (only show colors when explicitly set)

Bug Fixes:
- Fix category badge rendering to show all categories
- Prevent note loss during sync operations
- Improve offline-first functionality with better merge strategy
2026-03-25 20:12:00 +01:00
2026-03-18 16:45:48 +01:00

nextcloud-notes-tauri.png

Tauri + React + Typescript

Nextcloud Notes - Cross-Platform Desktop App

A modern, cross-platform desktop application for Nextcloud Notes built with Tauri + React + TypeScript.

Features

  • Cross-platform: macOS, Linux, Windows
  • Lightweight: ~600KB binary (vs 150MB+ Electron)
  • Modern UI: React + TailwindCSS
  • Full sync: Create, edit, delete, favorite notes
  • Search & filter: Find notes quickly, filter by favorites
  • Auto-save: Changes save automatically after 1.5s
  • Secure: Credentials stored in system keychain (localStorage for now)
  • Background sync: Auto-sync every 5 minutes

Prerequisites

  • Rust: Install from https://rustup.rs/
  • Node.js: v18+ recommended
  • Nextcloud instance with Notes app enabled

Development

# Install dependencies
npm install

# Run in development mode
npm run tauri dev

# Build for production
npm run tauri build

First Launch

  1. Enter your Nextcloud server URL (e.g., https://cloud.example.com)
  2. Enter your username
  3. Enter your password or App Password (recommended)
    • Generate at: Settings → Security → Devices & Sessions in Nextcloud
  4. Click Connect

Building for Distribution

macOS

npm run tauri build
# Output: src-tauri/target/release/bundle/macos/

Linux

npm run tauri build
# Output: src-tauri/target/release/bundle/appimage/ or .deb

Windows

npm run tauri build
# Output: src-tauri/target/release/bundle/msi/

Tech Stack

  • Tauri: Rust-based native wrapper (~600KB)
  • React 18: UI framework
  • TypeScript: Type safety
  • TailwindCSS: Utility-first styling
  • Vite: Fast build tool

Advantages over Native Swift App

  • Cross-platform: One codebase for macOS, Linux, Windows
  • No SwiftUI state issues: React's state management is mature
  • Smaller binary: Tauri is much lighter than Electron
  • Easier to maintain: Web technologies vs platform-specific code
  • No Xcode required: Build on any platform
Description
No description provided
Readme 12 MiB
Languages
TypeScript 93.5%
CSS 3.5%
JavaScript 2.3%
Rust 0.4%
HTML 0.3%