A desktop photo management application built with Tauri (Rust backend) and Next.js (React frontend).
- Automated image and video scanning with metadata extraction
- AI-powered image classification using Transformers.js
- Fast thumbnail generation with caching (images and videos)
- Natural language search with CLIP
- Google Drive cloud synchronization
- SQLite database for efficient metadata storage
- Support for multiple image formats (JPEG, PNG, HEIC, RAW)
- Support for multiple video formats (MP4, MOV, AVI, MKV, etc.)
- Configurable format selection for images and videos
- Video thumbnail extraction using FFmpeg
For detailed video features documentation, see the Video Features User Guide.
- Tauri: Desktop application framework
- image: Image processing and manipulation
- kamadak-exif: EXIF metadata extraction
- rayon: Parallel processing
- walkdir: Directory traversal
- rusqlite: SQLite database
- ffmpeg-sidecar: Video frame extraction
- proptest: Property-based testing
- Next.js: React framework
- @xenova/transformers: Browser-based AI models
- react-window: Virtual scrolling for performance
- Tailwind CSS: Styling
- fast-check: Property-based testing
- vitest: Testing framework
- Node.js 20+ and npm/pnpm
- Rust 1.77.2+
- Cargo
- FFmpeg (required for video thumbnail generation)
- See FFmpeg Installation Guide for detailed instructions
-
Install FFmpeg (if not already installed):
- Windows:
choco install ffmpegor see installation guide - macOS:
brew install ffmpeg - Linux:
sudo apt install ffmpeg(Ubuntu/Debian)
- Windows:
-
Install dependencies:
npm install- Run in development mode:
npm run tauri devRun frontend tests:
npm testRun Rust tests:
cd src-tauri
cargo testBuild for production:
npm run tauri buildTo create a complete release with all artifacts:
Windows:
.\scripts\prepare-release.ps1 -Version "1.0.0"macOS/Linux:
./scripts/prepare-release.sh 1.0.0This will:
- Run all tests
- Build release artifacts for your platform
- Generate SHA-256 checksums
- Create release notes from template
- Create testing checklist
- Release Process Guide - Complete release workflow
- Release Artifacts Guide - Installer information
- Distribution Guide - Building and distribution
- Code Signing Guide - Code signing setup
Users can verify installer integrity:
# Windows
.\scripts\verify-checksum.ps1 -InstallerPath "installer.exe" -ChecksumFile "checksums.txt"
# macOS/Linux
./scripts/verify-checksum.sh installer.dmg checksums.txt.
├── src/ # Next.js frontend source
│ ├── app/ # Next.js app router pages
│ ├── components/ # React components
│ └── __tests__/ # Frontend tests
├── src-tauri/ # Rust backend source
│ └── src/
│ ├── database.rs # SQLite database module
│ ├── lib.rs # Main application entry
│ └── main.rs # Binary entry point
├── .kiro/specs/ # Feature specifications
└── public/ # Static assets
The application uses SQLite with three main tables:
- images: Stores image metadata and file paths
- tags: AI-generated content tags with confidence scores
- embeddings: CLIP embeddings for semantic search
[Your License Here]