Immich is a high-performance self-hosted photo and video management solution built primarily in TypeScript. It serves as a privacy-focused alternative to cloud-based photo services like Google Photos, allowing users to maintain complete control over their media libraries by running the application on their own infrastructure. The project is licensed under AGPLv3 and maintains an active community with a public Discord server.
The application provides both mobile and web interfaces for accessing and managing photos and videos. The mobile app, built with Flutter, supports automatic backup when opened and background backup functionality, while the web interface is constructed using SvelteKit and Svelte. Both platforms enable users to upload, view, download, and organize their media with features including multi-user support, shared albums, and public sharing capabilities. The system prevents duplicate asset uploads and supports raw image formats alongside standard photo and video types.
Advanced search and discovery features distinguish Immich from simpler gallery applications. Users can search by metadata including EXIF data, by detected objects, by faces through facial recognition and clustering, and using CLIP-based semantic search. The application displays metadata through an integrated map view and supports 360-degree image viewing on the web platform. Additional organizational features include the ability to create archives, mark favorites, view memories from previous years, stack similar photos, and organize content through folder views and tags.
The backend infrastructure runs on Node.js with NestJS, providing a robust server component that handles user management, API key generation, OAuth support, and administrative functions. Users can define custom storage structures for their media library, and the system supports partner sharing alongside standard album sharing. The mobile app includes offline support capabilities, allowing access to previously synced content without internet connectivity.
According to GitGenius tracking data, the repository has demonstrated steady growth with 105,655 stargazers and 6,031 forks as of the most recent check. The project maintains active issue and pull request management with a median response latency of 0.5 hours across 6,652 tracked items, though mean response time extends to 571.1 hours reflecting the volume of activity. Mobile-related issues represent the most active category with 781 labeled items, followed by web interface issues at 303 and server-related issues at 279. The core development team includes bo0tzz with 3,931 tracked events, alextran1502 with 3,737 events, and jrasm91 with 1,836 events as the most active contributors. The project shares contributor overlap with major repositories including Microsoft's VSCode and TypeScript implementations, as well as the Rust language repository, indicating involvement from developers across the broader open-source ecosystem. The README includes translations in over twenty languages, reflecting the application's international user base and commitment to accessibility.