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