A simple and elegant desktop application for browsing, selecting, and organizing your photo and video collection. Built with Electron and TypeScript.
See how easy it is to use Photo Selector! This demo shows the complete workflow from opening a folder to starring your favorite photos and videos:
What you see in the demo:
- 📂 Opening a folder with mixed media (photos, videos, documents)
- 🔍 Browsing through thumbnails in grid view
- ⭐ Starring favorite photos and videos with one click
- 🎯 Filtering to show only starred items
- 🖼️ Full-resolution preview with zoom and pan
- 🎥 Video playback with native controls
- 🖼️ Photo & Video Browsing: Browse both images and videos from any folder on your computer
- 🔍 High-Quality Preview: Double-click images for full-resolution preview with zoom and pan capabilities
- 🎥 Video Playback: Native HTML5 video player with full controls
- ⭐ Star/Shortlist Media: Mark your favorite photos and videos with star ratings for easy access
- 🔽 Smart Filtering: Filter to show only starred items in any folder
- 📤 Export Starred Items: Copy all your starred photos and videos to any destination folder
- 🔍 Zoom & Pan: Mouse wheel zoom and drag-to-pan for detailed image inspection
- 🎨 Modern UI: Clean, modern interface with glassmorphism design
- ⚡ Fast Performance: Built on Electron for native desktop performance
- 🧭 Comprehensive Navigation: Navigate through media using arrow keys, mouse wheel, or buttons
- ⌨️ Keyboard Shortcuts: Full keyboard support for efficient navigation
- 🔒 Secure: Implements Electron security best practices
- 📱 Responsive: Adapts to different window sizes
- 💾 Persistent Storage: Stars are saved in a cross-platform SQLite database
Download the latest release from the Releases page.
- Installer:
Photo.Selector.Setup.x.x.x.exe(recommended) - Portable:
Photo.Selector.x.x.x.exe
- Download
Photo.Selector-x.x.x.dmg - Drag to Applications folder
- Download
Photo.Selector-x.x.x.AppImage - Make executable:
chmod +x Photo.Selector-x.x.x.AppImage
- Clone this repository
- Install dependencies:
npm install
- Run in development mode:
npm run dev
- Open Folder: Ctrl+O to select a media folder
- Browse Media: View thumbnails in grid, double-click to preview
- Star Favorites: Click star button (★) or press 'S' key
- Filter: Use "Show Starred Only" to see favorites
- Export: Copy starred media to any folder
←/→orA/D- Navigate between mediaS- Star/unstar current item+/-- Zoom in/out (images)Ctrl+O- Open folderCtrl+Shift+S- View starred collectionESC- Close preview
npm install # Install dependencies
npm run dev # Run in development mode
npm run build # Build TypeScript
npm run dist # Create distribution files- JPEG (.jpg, .jpeg)
- PNG (.png)
- GIF (.gif)
- BMP (.bmp)
- WebP (.webp)
- SVG (.svg)
- TIFF (.tiff, .tif)
- MP4 (.mp4)
- AVI (.avi)
- MOV (.mov)
- WMV (.wmv)
- FLV (.flv)
- WebM (.webm)
- MKV (.mkv)
- M4V (.m4v)
- 3GP (.3gp)
photo-selector/
├── src/
│ ├── main.ts # Main Electron process
│ ├── preload.ts # Preload script for secure IPC
│ └── database.ts # SQLite database management
├── renderer/
│ ├── index.html # Main UI
│ ├── styles.css # Styling with glassmorphism design
│ └── renderer.js # Renderer process logic
├── build/
│ └── icon.svg # Application icon
├── dist/ # Compiled TypeScript output
├── release/ # Distribution files (AppImage, etc.)
├── package.json # Project configuration
├── tsconfig.json # TypeScript configuration
├── build-appimage.sh # Build script for AppImage
├── LICENSE # ISC License
└── DISTRIBUTION.md # Distribution guide
Built with: Electron 37.x, TypeScript 5.x, SQLite3
Data Storage: Cross-platform SQLite database in user home directory
Security: Context isolation enabled, secure IPC communication
ISC License - see LICENSE file for details.
- Fork the repository
- Create a feature branch
- Make your changes and test with
npm run dev - Commit and push your changes
- Open a Pull Request
