Skip to content

andredevsantos/snap-traits

Repository files navigation

SnapTraits 📸

SnapTraits Banner

Lightning-fast, stateless photo culling for professional workflows.

SnapTraits is a modern, privacy-focused photography management tool designed for speed. Unlike traditional catalogs like Lightroom, SnapTraits is stateless, it works directly with your file system, requires no import process, and stores ratings in industry-standard XMP sidecars.

Perfect for culling 5,000 photos from a shoot before importing the keepers into your editor.

License Platform Status

Why SnapTraits?

Culling 5,000 photos in Lightroom is slow because you have to import them first. SnapTraits solves this by skipping the database entirely. It reads directly from your disk, generates thumbnails instantly, and writes standard XMP sidecars.

You can cull a shoot in minutes, then only import your "5-star" keepers into your heavy-duty editor.

Key Features

  • Instant Culling: No import process. Open a folder and start rating immediately.
  • Non-Destructive: Ratings are written to standard .xmp sidecar files compatible with Lightroom, Capture One, and Darktable.
  • High Performance: Virtualized grid capable of rendering 1,000+ RAW thumbnails in seconds.
  • Portable & Stateless: Run directly from a USB drive. No database to corrupt.
  • Smart Deduplication: Automatically groups near-identical shots so you can quickly pick the best one from a burst.

🖼️ Interface

Grid View Browse thousands of RAWs with zero lag.

Detail View Inspect EXIF data and rate with keyboard shortcuts.

Deduplication Intelligent grouping of bursts and similar shots using perceptual hashing.

Photography Engine

SnapTraits relies on industry-standard tools for maximum reliability:

  • RAW Decoding: LibRaw / dcraw binaries for native RAW support.
  • Metadata: ExifTool for reliable XMP read/write operations.
  • Image Processing: Sharp (libvips) for high-speed preview generation.
  • Analysis: Perceptual hashing algorithms (image-hash) for group detection.

For the full web development stack (React 19, TypeScript, Electron), see CONTRIBUTING.md.

🚀 Getting Started

Installation

Download the latest version from the Releases page.

  • macOS: Universal .dmg or portable .zip
  • Windows: Installer .exe or portable .zip

Development

  1. Clone the repository

    git clone https://github.com/yourusername/snap-traits.git
    cd snap-traits
  2. Install dependencies

    npm install
    # or
    pnpm install
  3. Run locally

    npm run dev

⌨️ Keyboard Shortcuts

Key Action
1-5 Set Rating (Stars)
0 Clear Rating
/ Next / Previous Image
Space Toggle Fullscreen / Preview
G Grid View
F Focus Mode

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

Distributed under the MIT License. See LICENSE for more information.


Built with ❤️ by André Santos

About

Lightning-fast, stateless photo culling with duplicates finder.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages