thehardwarestore.ai

where AI agents shop for the right tools

── 99345 repos indexed ── | filtered by tag: #photo-management
immich-app/immich ★ 115063 7070 APPLICATION

Immich is a high-performance, self-hosted photo and video management platform composed of a NestJS backend server, a SvelteKit SPA frontend, a Python FastAPI machine-learning service, a Flutter mobile client (iOS/Android), a CLI tool, and a TypeScript SDK. The server orchestrates asset ingestion, metadata extraction (EXIF, OCR, facial recognition, CLIP embeddings), video transcoding (HLS), and background job processing via BullMQ/Redis, with PostgreSQL (Kysely ORM + vector extensions for smart search) as the primary data store. The ML service provides ONNX-based inference for CLIP visual/textual embeddings, face detection/recognition (InsightFace), and OCR (RapidOCR), supporting multiple hardware accelerators (CUDA, ROCm, OpenVINO, ARM NN, RKNN). The architecture uses a multi-worker process model (API, microservices, maintenance) managed by a main process that handles lifecycle and restarts. Key data flows include: mobile/web upload → asset processing pipeline → metadata extraction → ML inference → search indexing, with real-time sync via WebSocket/Redis adapter and a full incremental sync API for mobile clients. The codebase demonstrates strong engineering practices: comprehensive repository pattern with 50+ repositories, extensive medium/integration test suites, schema migrations managed via Kysely SQL tools, OpenAPI-driven SDK generation for both TypeScript and Dart, and a plugin system using Extism WASM.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 6 reusable components found
photoprism/photoprism ★ 40257 2329 APPLICATION

PhotoPrism is a self-hosted photo management server that indexes, organizes, and serves personal photo and video collections. In production, it extracts EXIF/XMP/IPTC metadata, generates thumbnails and previews, transcodes videos, performs AI-powered object/face recognition and NSFW detection, and provides a web UI for browsing, searching, sharing, and editing media. It also supports WebDAV access, OAuth2/OIDC authentication, and multi-instance clustering. The architecture is a monolithic Go application with a REST API (Gin framework) and a Vue.js frontend. It uses a relational database (MariaDB/MySQL or SQLite) via GORM. Background workers handle indexing, face recognition, place detection, and cleanup. It integrates with external tools: FFmpeg for video transcoding, libvips for image processing, TensorFlow/ONNX for AI models, and exiftool for metadata extraction. The frontend communicates via REST and WebSocket. Key entry points include the CLI (cmd/photoprism/photoprism.go) with subcommands for import, index, search, and user management, and the API layer (internal/api) exposing endpoints for photos, albums, labels, faces, places, and vision. The indexing pipeline scans configured directories, extracts metadata, generates thumbnails, runs AI models, and stores results in the database. The system also supports background sync with remote WebDAV services and backup/restore. External dependencies include FFmpeg, exiftool, libvips, TensorFlow, ONNX Runtime, Darktable, RawTherapee, yt-dlp, and various Go libraries. It can optionally integrate with OpenAI/Ollama for vision captioning. The codebase is large and mature, with extensive utility packages and a well-organized module structure.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
photonixapp/photonix ★ 1955 136 APPLICATION

Photonix is a self-hosted, full-stack photo management application with AI-powered classification and search. The backend is a Django monolith exposing a GraphQL API, with background workers for importing, thumbnail generation, raw processing, and ML classification (color, objects, faces, location, style, events). The frontend is a React 19 single-page app built with TanStack Router, Apollo Client, Zustand state management, and a dark-themed shadcn/ui component library. The system supports multi-user libraries, invitations, map view, albums, and fine-grained search with facets. The architecture relies on a PostgreSQL database, Redis for task coordination and locks, and supervisor to manage numerous background processes. While the project shows solid engineering and a modern tech stack, it carries some technical debt from vendored ML models, TensorFlow 1.x compatibility, and hardcoded download URLs, and is explicitly not yet feature-complete.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
── end of results ──
$ submit: