Been a user since over 1 year and it has been more than amazing. Progress was unbelievable. Features I was hoping would exist but never would have thought I would ever see them, like album sync, were added in short time.
I've replaced Apple Photos with Immich (from iCloud to self-hosted) and this was one of the important things to transfer. I'm completely de-Appled now and Immich was part of the journey.
After stopping for years because it was hard to view them easily, I'm finally taking photos again because of Immich.
Honestly, thank you for making me feel marginally better about the disgustingly lazy, shortsighted, stupid etc. practice of using Google Photos even though they are waiting with bated breath to report me to the cops because I took a picture of my son to send to his doctor[1], before banning my whole account.
Migrating to Immich, 2026, hold me to it please lazy me! Oh how’s the search? (Too lazy to label anything so rely on Google Spyware for text & object recognition search when iOS fails. Take photos every day of my life so plenty to trawl through.)
[1] https://www.nytimes.com/2022/08/21/technology/google-surveil...
The search is amazing, you search for "cat" and you get back all the cats.
So you can search “black cat on blue carpet in the morning” and expect to see a result (if it exists)
I didn't know it was that good! Wow.
...especially cause he's stuck with Yahoo (actually do remember that detail from the story, and that people give him a hard time for it)
Alex Tran (Immich lead) really took it up a notch or two when FUTO "acquired" the project. The FUTO model is interesting in showing another successful way to grow & support FLOSS till self-sustainability.
npm install for web/ server/
% cloc .
81808 text files.
51415 unique files.
Language files blank comment code
---------------------------------------------------------------------------------------
JavaScript 25050 453101 913671 4436663
TypeScript 14997 85346 630503 831318
JSON 2238 168 0 457435
Perl 233 10541 34463 293957
Markdown 1977 89859 1551 234399
Dart 1257 24152 14748 229937
Svelte 678 5917 190 51223
HTML 128 16361 90 31719
...
---------------------------------------------------------------------------------------
SUM: 51415 713200 1617503 6726009
In comparison, qemu does emulation of literally every hardware that there is and it is only 1/3 more code, and it is without counting code required to run nodejs, docker, postgresql, redis that is dependencies of this image catalogue software. qemu-10.1.0 % cloc .
58961 text files.
43347 unique files.
Language files blank comment code
---------------------------------------------------------------------------------------
C 18063 1068616 1312988 5590243
C/C++ Header 13980 366138 907350 1774239
Assembly 1370 42839 55872 320027
Python 1345 67483 89294 255732
SUM: 43347 1789003 2759752 9220521
---------------------------------------------------------------------------------------I'll take the high level language developed solution that I can use now over a low level language version that would reach feature parity with this 10 years from now.
Speed of development is a feature.
You are either consuming your own server’s resources or you’re paying Apple/Google/someone else to handle it for you.
> will consume compute resources
This is an empty statement, the argument here is about the amount of resources and how it relates to the underlying technology.
And all this "biggest multinational scale" is just as meaningless, no specific resource requirement follows from that (maybe a big part of that $100 is exactly because of "big multi scale")
> News flash, when you query ChatGPT,
News flash, this is not chatGPT. Another news is that different models have very different memory requirements. Also, do you know that those requirements are only due to the models?
So again, your example doesn't help provide any justification.
> Cursed knowledge we have learned as a result of building Immich that we wish we never knew
50 extra packages are cursed
There is a user in the JavaScript community who goes around adding "backwards compatibility" to projects. They do this by adding 50 extra package dependencies to your project, which are maintained by them.
which bring to this user: Jordan Harband https://github.com/sponsors/ljharb
Does anyone know what they actually mean with that cursed knowledge point? And what's the "backwards compatibility" that Jordan also boasts in his GH profile?I love reading about opensource drama, especially if it's some technology I don't use directly, it's like watching a soap opera.
https://github.com/A11yance/axobject-query/pull/354#issuecom...
Is he really being paid per download, or is he just being sponsored? It’s not clear if either would imply some form of malicious intent either.
His libraries tend to build up on older runtime implementations and freeze every used functionality during runtime, so they provide "second-run safety" and "backwards compatibility". Developers disagree with some of its effects, such as a grown dependency tree and impacts in performance of multiple magnitudes (as measured in micro-benchmarks). ljharb seems to follow a rather strong ideology, but is a member of the TC39 group and a highly trusted person.
https://github.com/A11yance/axobject-query/pull/354#issuecom...
The problem is that he's forcing his ways on others. If we're identifying an aggressor here, it's him. The project maintainers are the victims.
Honestly, I can't understand the intent behind such a defensive rebuttal to the criticism of his actions.
I still think the conclusion on "setTimeout is cursed"[0] is faulty:
> The setTimeout method in JavaScript is cursed when used with small values because the implementation may or may not actually wait the specified time.
The issue to me seems that performance.now()[1] returns the timestamp in milliseconds and will therefor round up/down. So 1ms errors are just within its tolerance.
[0]: https://github.com/immich-app/immich/pull/20655
[1]: https://developer.mozilla.org/en-US/docs/Web/API/Performance...
setTimeout() does not actually guarantee to run after the elapsed time. It merely gets queued for the next async execution window after that timer elapsed. Hence it can also be off by infinity and never get called - because JS is single threaded (unless you use a worker - which comes with its own challenges) and async windows only open if the main thread is "idle".
Usually, this is very close to the time you set via setTimeout, but it's very frequently slightly off, too.
Is there even such a thing? You're at the mercy of the platform you're running on. And Windows, Linux, Mac, Android, and iOS are not realtime to begin with.
I guess if you're running on a realtime platform but in a VM like JS does, you can then take that property away, downgrading the "language" from being realtime. I wouldn't call that a language property still though, maybe my VM implementation doesn't make that downgrade after all.
Then there are also gotchas like these[0][1]:
> As specified in the HTML standard, browsers will enforce a minimum timeout of 4 milliseconds once a nested call to setTimeout has been scheduled 5 times.
Still, the issue is rather how to measure the elapsed time reliably, for unit-tests among other things.
[0]: https://developer.mozilla.org/en-US/docs/Web/API/Window/setT...
[1]: https://html.spec.whatwg.org/multipage/timers-and-user-promp... (first Note)
See: https://developer.mozilla.org/en-US/docs/Web/API/Window/setT...
i wish there was an unused lambda parameter warning..
Sometime I want to build a DB front-end that you send up some type of iceberg/parquet or similar, and return a similar file format over a quic protocol. Like quic, persistent connections could be virtualized, and bulk insert could be sane and normalized: eg insert these rows into a table or temp table, then execute this script referencing it. While I'm at it, I'll normalize PL/SQL so even brain-dead back-ends (sqlite) could use procedural statements and in-database logic.
With the new multimodal LLMs it seems a better approach might be to get a multimodal LLM to describe the image and list keywords, and then just use the included Meilisearch.
That said, I see they list some models I haven't tried, so perhaps time to try again.
One thing that is missing for me is integration with external tools, maybe using a bit more flexible storage structure. And also smart geotagging.
Not sure what to say, could be a very very rare edge case, but it's not very reassuring.
Having said that, if you self-host something like this, you're responsible for making backups. The actual photos uploaded to Immich are stored in the file system as regular files. Any other data that Immich can't easily recreate is stored in Postgres, which it automatically dumps once a day. So if you back up your image files and your Postgres dumps, you can always recreate your library.
All relevant files are stored in your UPLOAD_LOCATION which you defined in your .env file (if you deployed immich via Docker Compose). The files you absolutely need to back up are in:
- UPLOAD_LOCATION/upload ← Contains your images
- UPLOAD_LOCATION/backups ← Contains your postgres dumps
You should also back up these two directories:
- UPLOAD_LOCATION/library
- UPLOAD_LOCATION/profile
They're not strictly necessary, but it makes it easier to restore the same setup.
Still not nice, I've always had all of Immich in a ZFS dataset with regular snapshots. Then you can always roll back. I've only had to use it when I wasn't happy with some large import though.
A poweruser tip that has helped me a couple of times: Use ZFS (or other snapshotting facilities) to make snapshot before making any changes/updates or doing large imports. It makes the whole thing sort of bullet proof and you can retry if you're not happy with some import flag.
Immich had my old Corei3 server making a lot of noise for a couple of days btw! But, it's really good at facial recognition, not so much on finding dogs or something. But still very cool if you don't have to compromise on features as a self-hoster, I'm really grateful and will buy the "support package" (which does not add anything afaik... btw later they will come with a way to do seamless, encrypted off-site backups).
[0] https://docs.immich.app/features/command-line-interface/
I'm glad to see immich strive forward.
I wanted to change the "approach" of how I do photos:
* When I take a photo, it's usually in the moment.
* I want to have the option to "share" that photo directly to a certain album
* I'd want my wife / friends to be able to "share" the photo to those albums
Almost the same way that "frequent contacts" come up from WhatsApp.
Is this possible with the current app? This is what I wanted my app to do, and focus on being more "album" centric, rather than a big-black-hole of all photos I've ever taken..
I might even make my app, but use immich on the backend, and allow users to order a hardcopy / backup of their albums as part of the app.
My only minor complaint is that new releases are super frequent and rarely add anything meaningful.
> There are still a few items on our roadmap that we want to complete before the year ends such as auto-stacking, and achieving feature parity between the web and mobile app. We also have plans to start work on improved stack support, better sharing, group management, and ownership improvements, as well as many other enhancements.
That said, this sounds like they're not going to get the full 2025 plan done: https://immich.app/roadmap
Which is totally fine of course, I'm still a very happy user. But I'm really looking forward to Workflows! I'd love to automatically share with someone all pictures that include them.
There is a bunch of third party app that can do that easily, ie : https://github.com/romainrbr/immich-face-to-album
But indeed it would be better to have it integrated into Immich
But I still support them, technical debt is always like a iceberg, you trip on the tip, then discover it will consume you and your team for months to fix it. Still needs to be fixed as early as possible, otherwise everything becomes “invisibly slow”.
A minor note: Nowhere in the release note do you say what the app is or what it does. Sure, I can find out by following the links, but coming in cold not knowing what immich is, I was kind of expecting to learn that in the write-up.
> High performance [desktop] photo and video management solution
Honestly all I want is
- Non destructive library management. No copying and moving files and the library is just “a file”
- Exif GPS map with search support (“Photos taken at NYC between 2 and 4pm”)
- Automated (AI?) photo tagging
That's not a desktop app, in fact it's pretty much like Immich
I personally landed on Peakto[2], since it has the unique ability to create a unified catalog across multiple CaptureOne sessions, but it's probably overkill for what you need.
https://www.gyford.com/phil/writing/2025/09/27/escaping-ligh...
The automated AI face detection can be improved compared to immich. But I guess this whole area is developing rapidly these days so I expect it to get better soon.
Example 1. Show all photos from this area (draw rectangle on map) from times 22:00 to 00:00.
Example 2. Show all photos from this area (draw rectangle on map) from years 2020 to 2024 in months march to may AND september to october from times 22:00 to 00:00.
In the Immich demo the map view lets me zoom and shows bubbles with the number of photos from an area but I see no way to select an area or bubble to explore just those photos in an album or temporary view. The map view does have a time range option (last N days or date range yyyy-mm-dd to yyyy-mm-dd), but no time of day range or months range.
Search view has advanced options with place dropdowns (country state city) but no map area rectangle option. Also has date range (yyyy-mm-dd to yyyy-mm-dd), but no time of day range or non-contiguous time criteria.
I think a photo viewer could implement the exemplified kind of searches in a slim way through a map view (user draws a rectangle) with sliders (year range, months range, time of day range) that ideally let the user set multiple ranges on one slider (march to may AND september to october). Ideally such combo criteria could then also be bookmarked and searched and the filtered in items could be batch operated on (tag, rename, delete).
Searching does need some omph though, I will have to move it away from my poor little NAS at some point.
If anyone knows of solutions to this I'd be curious!
I really don’t get having all of your images in a a library and not in a file structure. Immich can look at your external libraries but it can’t really do anything with them. I can’t injest, say my iPhone photos and then later categorize them and move them to the folder structure for more secure and stable long-term storage. I’ve wanted to like Immich and what they are doing, but I am fearful that they won’t be around forever and I will have just another wandering database of my images that I can’t really move to another platform when inevitably comes along.
I forgot the name, but there is a software "law" that software that has been around for N years will probably be around for N more years (so the longer it's been around, the longer it will continue to be around).
I see about 7 big contributors: https://github.com/immich-app/immich/graphs/contributors. I think most of them work for/are sponsored by FUTO: https://futo.org/about/what-is-futo/
And seeing the FUTO description, I like that. We need more of that :-)
> FUTO is an organization dedicated to developing, both through in-house engineering and investment, technologies that frustrate centralization and industry consolidation.
Though this part needs more research:
> From its founding, FUTO has been funded entirely by investment from its sole owner, Eron Wolf.
I have no idea who Eron Wolf is...
Edit: found some more info. Potentially promising:
https://news.ycombinator.com/item?id=35914264
https://gitlab.futo.org/eron/public/-/wikis/Thoughts-on-Open...
Though the question remains about FUTOs long term sustainability.
I donate to Immich monthly, and I’m glad they managed to keep the project going and not paywalling any of their features, even under the influence of their new sponsor.
You may be interested in the change I submitted to Immich which makes it possible to directly log in to Immich using the Nextcloud OIDC app. Add Immich as an 'external site' and use the autoLaunch parameter [1] to have the site open in NC as if it were a 'native' app without needing to log in first.
[1] https://docs.immich.app/administration/oauth/#auto-launch
Immich can store your photos in a file structure you want. It can also reorganise your files on disk based on EXIF data, and so on.
> I can’t injest, say my iPhone photos and then later categorize them and move them to the folder structure for more secure and stable long-term storage
It can absolutely do exactly this.
I've been wanting to set it up at home for a while now, but I have some reservations...
This type of fully featured open source software that competes with a service by a giant corporation with infinite resources is ripe for the typical OSS rugpull, and/or enshittification, and/or being acquired, followed by rugpull/enshittification. I've been burned many times by this before, and I'm reluctant to go all in on a product that demands so much practical investment: importing all my data, categorizing/labeling, using mobile apps, relying on "AI", etc. I'm tired of the modern software churn.
Immich does have an optional commercial license, which is good, and it's part of the FUTO brand of products, which seems to have a noble vision. But it's an unproven model that doesn't guarantee none of the above will happen.
In a weird way, I would like this type of software to be less polished and have less features. Both to make it less attractive for hostile practices, and to make development/maintenance easier and more cost-effective. Give me something that I can easily sync my photos to, view them in a web browser, and securely share them with close contacts. I don't need a Google Photos replacement. I need something simple that does a few things well, and that I can trust is not going to disappear on me. Is there such a product?
I'm aware of apps like Nextcloud which probably does this, but that's even more complex than Immich. Currently I'm just using `rsync`, and a static file web server, but that's a pretty hacky solution. I would need just a bit more polish. I could probably do this myself, but already have a long list of unfinished projects I would like to get to first.
Immich is AGPL-licensed and doesn't have a CLA, which makes it functionally impossible for us to do any kind of rugpull. We're already "aqcuired" by FUTO since a solid year ago[0] and it's only been up since then.
> I don't need a Google Photos replacement.
Then there are many other options in this space that might be better suited to you. [1] has a really good overview.
More difficult, perhaps, but certainly not impossible. And there are many other ways the software can be functionally crippled without involving a license change.
> We're already "aqcuired" by FUTO since a solid year ago[0] and it's only been up since then.
Like I said, FUTO seems like a fair steward of OSS so far, but I have no reason to trust them long-term. It is funded by a single investor, which doesn't inspire confidence. That relationship may end at any point.
To be fair, I am being overly cautious of what seems like an excellent project by any measure, especially compared to the alternatives. In my defense, I've been conditioned over the years to be wary of software that looks too good to be true, because it inevitably disappoints me, and to prefer simpler and even jankier software that doesn't promise the world, because it rarely does.
Commercializing free software is a difficult and unsolved problem. I'm not against mandatory licenses to unlock features that only a few large/"enterprise" users would generally use. Or to have some sort of a tiered licensing system for more advanced features. This would go against your current philosophy of not locking any features behind a paywall, which is noble, but it also has the drawback of making payments entirely optional. It is essentially donationware, which is not a stable source of income.
Also, subscriptions, as much as users don't like them, are really a requirement for this type of software. It pays for continual maintenance which wouldn't be covered by a single lifetime purchase. There are many ways this could be implemented that makes it fair for both the user and the developer.
In any case, thanks for your work, and good luck with the project. And thanks for the link with alternatives.
If it happens next time, will check app logs (Profile Icon > Logs) to see if it contains anything useful
It's not. I did it in under a minute.
[1] https://github.com/immich-app/immich/compare/v1.144.1...v2.0...
> What versioning strategy will Immich use?
>
> Starting with v2.0.0, we will now follow semantic versioning.
(edit for formatting)Does anybody know self-hosting solution to have nice site to show off selected photos? No authorization and users for viewers, no "share" links, but photostream, albums, tags, way to see one photo full-screen. With minimal "chrome" like Flickr can do.
It doesn't need to have photo-organization things, object recognition, etc, which is needed to navigate your full library. Only way to show photos your specifically selected to publish.
Huh? The share feature works with no auth, I wouldn't want it different. Sounds like you just want to build a self hosted website to show portfolio work which... You just make a website
Also, I prefer to have some search (by tags, lens, words in description) and easy upload.
(I have where to host site with virtually any number of photos)
Check out the sample gallery: https://immich-demo.note.sx/share/gJfs8l4LcJJrBUpjhMnDoKXFt1...
I want to get Immich up and running for my personal workflow. I shoot sports stuff regularly that I want to share along with personal photos I do not. Right now my workflow is frustratingly manual for this process. Having the "share with the public" functionality right beside my internal workflow would be a dream.
https://immich.home.stavros.io/share/ztG3VGyrbofAw3QUXjytV2P...
The GP wanted albums, for example, which this doesn't seem to have?
Edit: A sibling post's reference to the Immich public proxy looks pretty cool. I am anxious to try it out.
The idea of it is - a simple website where, when you go to it, an album is auto-created for you without need for an account.
You can upload images to that site through drag and drop or clicking upload. Once uploaded images can be rearranged and resized, with the grid adapting.
You can share the gallery with other people to collab on it by sharing the URL with the edit query param attached. If you share the link without the edit key the gallery is view only.
Here's my personal inspiration board as an example: https://mood.site/WvP4xd6x
Main thing it's lacking based on your ask is ability to toggle visibility for individual photos.
--
I haven't considered making it something people could self-host, but the underlying tech is easy enough and is just backed by a pretty simple database that I could maybe bake into a single delivery html + js file that references a folder of images. Would that be interesting?
That ZFS dataset is backed up daily offsite using Restic + Rclone
Immich LXC is backed up daily to Proxmox Backup Server 1, which syncs to Proxmox Backup Server 2, and also gets sent offsite.
PostgreSQL is running in another LXC container, which also backs up to PBS and also offsite.
sagacity•4mo ago
darkwater•4mo ago