5de3cd37892ea0700efbe54ed351c9aef2f82b47
- Replace API-based note operations with direct WebDAV file access
- Use filename-based IDs instead of numeric IDs for better reliability
- Implement safer merge strategy that doesn't clear local notes
- Add ETag-based conflict detection to prevent data loss
- Support string | number IDs throughout the codebase
- Notes are now stored as .txt files in /Notes/{category}/
- Eliminates race conditions and temporary ID conflicts
- More reliable sync with direct file system access
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
- Enter your Nextcloud server URL (e.g.,
https://cloud.example.com) - Enter your username
- Enter your password or App Password (recommended)
- Generate at: Settings → Security → Devices & Sessions in Nextcloud
- 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
Recommended IDE Setup
Description
Languages
TypeScript
93.5%
CSS
3.5%
JavaScript
2.3%
Rust
0.4%
HTML
0.3%
