gitwtfhub

wtf is immich?

immich-app/immich — explained in plain English

Analysis updated 2026-06-20

99,828TypeScriptAudience · generalComplexity · 4/5LicenseSetup · hard

TL;DR

Self-hosted Google Photos alternative: back up your phone photos and videos to a server you control, with a mobile app, web UI, facial recognition, shared albums, and map view, no cloud subscription needed.

Mindmap

mindmap
  root((immich))
    What it does
      Photo backup
      Video backup
      Facial recognition
      Map view
    Tech stack
      TypeScript
      Flutter
      NestJS
    Use cases
      Replace Google Photos
      Family sharing
      Private storage
    Setup
      Self-hosted server
      Docker required
      Mobile app

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Replace Google Photos with a private server you own: back up every phone photo automatically without a cloud subscription.

REASON 2

Share family photo albums privately, with the same face-grouping and map features as commercial photo apps.

REASON 3

Search your photo library by object, face, or location without sending any data to a third-party cloud service.

REASON 4

Give multiple family members their own accounts with shared albums on a single self-hosted server.

What's in the stack?

TypeScriptFlutterNestJSNode.js

How it stacks up

immich-app/immichangular/angularant-design/ant-design
Stars99,828100,06097,930
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyhardmoderateeasy
Complexity4/54/52/5
Audiencegeneraldeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1h+

Requires a self-hosted server with Docker to run all backend services, mobile apps connect to that server over the network.

AGPLv3, free to use and modify, but if you run it as a network service you must share your changes under the same licence.

Wtf does this do

Immich is a self-hosted photo and video management solution that aims to be a high-performance alternative to commercial cloud photo services. The topics list it as a Google Photos alternative. The everyday problem: most people have years of photos and videos on their phones, and the easy backup option is a third-party cloud service. Immich lets you run the backup and library service on a server you control instead, so the data stays in your home, on your hardware, while you still get an app experience comparable to a cloud product. How it works (per the README feature table): there is both a mobile app and a web interface. The mobile app uploads and views photos and videos, automatically backs up when opened, can run background backup, and lets you choose specific albums. The web interface adds administrative features such as user management and API keys. Both interfaces support multi-user accounts, shared albums, RAW formats, EXIF metadata with map view, search by metadata, objects, faces, and CLIP (a visual-search technique), facial recognition and clustering, Memories, public and partner sharing, a global map, OAuth login, LivePhoto and MotionPhoto playback, stacked photos, and tags. You would use Immich when you want a Google-Photos-like experience for a personal photo and video collection but you want full control over storage and privacy on a self-hosted server. The README warns to follow a 3-2-1 backup strategy regardless. The repository's primary language is TypeScript, and the topics list mentions Flutter for the mobile app and NestJS plus Node.js on the server. Licensed under AGPLv3.

Yoink these prompts

Prompt 1
I have Immich running on my home server. How do I set up automatic background backup from my iPhone to my Immich instance?
Prompt 2
How do I configure Immich's facial recognition to group photos by person and share a specific person's album with family members?
Prompt 3
I want to migrate my Google Photos library to Immich. What is the best way to export from Google and import into self-hosted Immich?
Prompt 4
How do I enable OAuth login in Immich so my family members can sign in with their existing Google accounts?
Prompt 5
Help me write a script that watches my Immich server for new uploads and automatically applies tags based on EXIF location data.

Frequently asked questions

wtf is immich?

Self-hosted Google Photos alternative: back up your phone photos and videos to a server you control, with a mobile app, web UI, facial recognition, shared albums, and map view, no cloud subscription needed.

What language is immich written in?

Mainly TypeScript. The stack also includes TypeScript, Flutter, NestJS.

What license does immich use?

AGPLv3, free to use and modify, but if you run it as a network service you must share your changes under the same licence.

How hard is immich to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is immich for?

Mainly general.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.