← All reportsPublic report

immich-app/immich

High performance self-hosted photo and video management solution.

113k stars TypeScript View on GitHubprofiled 11d ago
Try GitZoid
326PRs this week
57Contributors
2Deps scanned
0Issues found
01 · Repo overview

How immich is put together

Immich is a high-performance self-hosted photo and video management platform, structured as a pnpm/mise monorepo. The backend server is a NestJS (TypeScript) application backed by PostgreSQL (via Kysely/postgres.js) and Redis (ioredis/BullMQ) for queues, exposing a REST API documented with OpenAPI/Swagger. A separate Python machine-learning service (FastAPI + Gunicorn/Uvicorn, ONNX Runtime) provides CLIP embeddings, facial recognition, and OCR inference. The frontend is a SvelteKit web app (static adapter) consuming a generated SDK, plus a Flutter mobile app, with the whole stack containerized via Docker Compose.

Languages

TypeScriptPythonSvelteDartRuby

Frameworks

NestJSSvelteKitSvelte 5FastAPIFlutterReact (email templates)ExpressBullMQSocket.IO

Datastores

PostgreSQLRedis

Infrastructure

DockerDocker ComposeGunicornUvicornONNX RuntimeOpenTelemetryPrometheusmiseFastlane

Major components

server

NestJS backend exposing the REST API, background job processing (BullMQ), database migrations, and business logic for assets, users, albums, and sharing.

web

SvelteKit single-page web client for browsing, uploading, and managing photos/videos, built as a static bundle and proxied to the server API.

machine-learning

Python FastAPI service running ONNX models for CLIP embeddings, facial detection/recognition, and OCR inference.

mobile

Flutter mobile application for photo backup, viewing, and management with Android Fastlane release tooling.

open-api

OpenAPI specification (immich-openapi-specs.json) driving the generated @immich/sdk client used by the web app.

i18n

Localization catalog of per-language JSON translation files consumed by the web frontend.

docker/deployment

Docker Compose stacks, hardware-acceleration configs, Prometheus config, and environment files for self-hosted deployment.

server email templates

React Email templates rendered by the server for transactional notifications via nodemailer.

Over the past several weeks, Immich has shipped major user-facing features like a new memories view, a redesigned search interface, tag renaming, and OAuth account management, while steadily modernizing its mobile app's data layer and action system. A large portion of the work has been behind-the-scenes engineering hygiene: migrating tests, tightening code quality with stricter linting, and reworking build and deployment pipelines. The overall arc shows a team balancing visible product polish with a deep investment in maintainability and stability.

Week by week

2026-08-24A new memories view landed alongside upload performance gains and several server-side correctness fixes.latest6 changes

Feature

Memories view

Introduced a dedicated view for browsing photo memories.

Refactor

Faster upload hashing

Web uploads now use a faster method to fingerprint files, with a fallback for older browsers.

Fix

Partner photos removed from memories

Photos shared by a partner are no longer incorrectly included in your existing memories.

Fix

Tag creation corrected

Fixed a bug in how tags are created on the server.

Chore

Mobile data reorganization

Moved the mobile app's database layer into a cleaner internal structure.

Chore

Dependency and toolchain updates

Updated Flutter, validation libraries, and various build dependencies.

2026-08-17A busy week delivered a new search UI, tag renaming, OAuth account management, and a wide sweep of mobile and server fixes.6 changes

Feature

New search interface

Rolled out a redesigned search experience on the web.

Feature

Tag renaming

Added the ability to rename tags from the web app.

Feature

OAuth account management link

Users can now reach their linked OAuth account settings directly.

Fix

Correct photo dimensions

Fixed cases where a photo's size was read incorrectly from its metadata.

Fix

Library cleanup safety

Prevented library exclusion rules from accidentally deleting photos outside their folder.

Refactor

Test suite modernization

Migrated many end-to-end tests for memories, partners, libraries, and more to a cleaner setup.

2026-08-10Work focused on workflow automation features plus extensive code-quality cleanup and build tooling improvements.6 changes

Feature

Workflow tag automation

Added the ability to trigger and filter automated workflows based on asset tags.

Feature

Workflow logging

Automated workflows now record logs of what they did.

Fix

Album deletion cleanup

Deleting an album owner now properly removes the associated album.

Fix

Mobile input polish

Fixed iOS keyboard quirks and pinch-to-zoom snapping in the mobile app.

Chore

Stricter code checks

Enforced stricter equality and linting rules across the mobile codebase.

Chore

Docker build rework

Reworked the Docker build workflow and release process.

2026-08-03The team fixed a range of mobile playback, sync, and battery issues while trimming machine-learning dependencies.6 changes

Fix

Battery drain fix

Stopped the mobile app from repeatedly retrying connections and draining battery when the server is unreachable.

Fix

Video playback controls

Fixed unresponsive playback controls for backed-up videos opened from search.

Refactor

Lighter ML setup

Removed an unneeded face-recognition dependency from the machine-learning service.

Feature

Selection count display

The album picker now shows how many items you've selected in its title.

Feature

Widget theme toggle

Added an option for the home-screen widget to match your icon theme.

Fix

Sync and stack fixes

Improved how the mobile app syncs photo stack changes and handles live updates.

2026-07-27A large restructuring of the mobile app's actions system arrived with new album, stack, archive, and restore capabilities.6 changes

Feature

New photo actions

Added album, stack, archive, and restore actions in the mobile app.

Refactor

Actions system overhaul

Reorganized the mobile app's share, edit, delete, upload, and other actions onto a shared foundation.

Fix

Partner asset ownership

Fixed handling when a partner owns an identical copy of your photo.

Fix

Security dependency updates

Updated a YAML parsing library to address security issues.

Chore

Stricter mobile linting

Applied stricter correctness and Flutter linting rules across the mobile app.

Docs

Documentation corrections

Revised configuration instructions and clarified deployment guidance.

03 · Security check

Dependencies and code review

2 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 2 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required