CardCatalog is a smart, local-first desktop application for photographers to catalog, search, and visualize their photo collections. Built with Electron and Nuxt, it runs entirely offline and uses local AI to help you find your best shots.
- Semantic Search: Find photos by describing them (e.g., "sunset at the beach", "dog playing in snow") using local CLIP models.
- Auto-Tagging: Automatically generates keywords for your photos without sending data to the cloud.
- Privacy First: All AI processing happens on your machine.
- SD Card & Folder Scanning: Quickly index photos from removable media or local drives.
- Metadata Extraction: Automatically pulls EXIF data including Camera Model, Lens, ISO, Aperture, and Focal Length.
- Geocoding: Visualizes where your photos were taken.
Drill down into your library with precision filters:
- Gear: Filter by specific Camera Bodies or Lenses.
- Settings: Filter by ISO, Aperture, and Focal Length ranges.
- Time: Jump to specific dates with the interactive Timeline Rail.
- OpenStreetMap View: Browse every geotagged photo on a dedicated map page with full-resolution thumbnails as pins.
- Smart Clusters: Pins automatically group together as you zoom out so dense trips stay readable.
- Dashboard: View statistics about your shooting habits (most used cameras, favorite focal lengths).
- Timeline: Visual distribution of your photo history.
Download the latest version from the Releases page.
- Core: Electron
- UI: Nuxt 4 (Vue 3) + Nuxt UI
- Database: sql.js (SQLite)
- AI: Transformers.js (ONNX Runtime)
- Workers: Heavy tasks (EXIF, AI) run in background threads for a buttery smooth UI.
- Node.js (v18+ recommended)
- npm
-
Clone the repository
git clone https://github.com/yourusername/CardCatalog.git cd CardCatalog -
Install dependencies
npm install
-
Download AI Models
This step is required to enable semantic search features.
npm run download-models
Run the renderer and Electron process in separate terminals:
-
Start the Renderer (UI)
npm run dev:renderer
-
Start the Electron App
npm run dev
To create a distributable package for your OS:
npm run package
# or to create installers
npm run makenpm ci
npm run make:win:x64- Will Li
- Eric Jia
- GPE Club
MIT







