惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
K
Kaspersky official blog
A
Arctic Wolf
Attack and Defense Labs
Attack and Defense Labs
L
LINUX DO - 热门话题
N
News | PayPal Newsroom
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
L
Lohrmann on Cybersecurity
PCI Perspectives
PCI Perspectives
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The Last Watchdog
The Last Watchdog
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
W
WeLiveSecurity
Know Your Adversary
Know Your Adversary
博客园 - Franky
T
Tenable Blog
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Help Net Security
Help Net Security
WordPress大学
WordPress大学
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
H
Heimdal Security Blog
TaoSecurity Blog
TaoSecurity Blog
S
Security Affairs
J
Java Code Geeks
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Apple Machine Learning Research
Apple Machine Learning Research
NISL@THU
NISL@THU
O
OpenAI News
The Cloudflare Blog
月光博客
月光博客
Google Online Security Blog
Google Online Security Blog
V
V2EX
罗磊的独立博客
美团技术团队
博客园 - 三生石上(FineUI控件)
Security Latest
Security Latest
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Cyberwarzone
Cyberwarzone
L
LINUX DO - 最新话题
Hacker News - Newest:
Hacker News - Newest: "LLM"
大猫的无限游戏
大猫的无限游戏

Immich Blog

Release v3.0.0 | Immich Blog Migrating to v3 | Immich Blog June recap | Immich Blog FUTO — 2 years later | Immich Blog May recap | Immich Blog April recap | Immich Blog Awesome Immich | Immich Blog Release v2.7.0 | Immich Blog Release v2.6.0 | Immich Blog February recap | Immich Blog Building the Immich editor | Immich Blog January recap | Immich Blog Release v2.5.0 | Immich Blog 2025 - A year in review | Immich Blog Release v2.4.0 | Immich Blog November recap | Immich Blog Release v2.3.0 | Immich Blog October recap | Immich Blog Release v2.2.0 | Immich Blog Google flags Immich sites as dangerous | Immich Blog Release v2.1.0 | Immich Blog Release v2.0.0 - Stable 🎉 | Immich Blog Release v2.0.0 - Stable 🎉 | Immich Blog New Svelte component library | Immich Blog Sync v2 | Immich Blog Cursed knowledge | Immich Blog New API documentation | Immich Blog Immich launches merch | Immich Blog 2024 - A year in review | Immich Blog Immich introduces product keys | Immich Blog Immich joins FUTO | Immich Blog 2023 - A year in review | Immich Blog
March recap | Immich Blog
Immich Team · 2026-03-31 · via Immich Blog

March 31, 2026

— Immich Team

A recap of March, 2026, including an update on upcoming features, releases, developer updates, and more.

Photo by Arno Smit on Unsplash

Hello everyone!

March was a great month for the team. Most of us were able to fly out to Austin, Texas, for FUTO's Don't Be Evil conference during SXSW. It's always fun to meet together in person, and we did some fun team-building activities. Besides the conference, we also had a few releases and continued working on some upcoming features. Continue below to read the full recap.

FUTO backups survey

FUTO started building an encrypted backup service this year and they plan to integrate it directly into Immich. They are currently running a survey to gather information about setups, library sizes, hardware & network capabilities, etc. Please fill out the survey if you haven't already. Also, if you are interested in joining the closed beta later this year there is a place to leave your email address.

Don't Be Evil

At the Don't Be Evil FUTO conference Alex used Immich to give a presentation about Immich, which included what's changed since last year, and what's planned for this year. The presentation was recorded and should be available soon™️ on FUTO's Youtube channel. You can also find the slides here, on our public Immich instance. One take away from the presentation was that Immich is where it is today because of the awesome community and external contributors, so thank YOU!

Alex presenting at Don't Be Evil
Alex presenting at Don't Be Evil

Releases

We published 1 minor release this month:

  • v2.6.0 - Album covers, shared link slugs, and native HTTP clients on mobile, schema-check command, and OAuth claims in idToken

Developers update - from the labyrinth

Our team members' unfiltered thoughts on the good, the bad, and the frustration about the current tasks they are working on.

Recently, I've seen an increase in vibe-code projects trying to implement some features or mechanisms that the team hasn't gotten to yet. While those projects seem interesting, after looking at the code, many shortcomings and questions arose for vibe-code implementation that I don't think an LLM agent can understand correctly, which could degrade the experience or rack up huge billing costs for users from those external integrations.

As someone who cares so much about the experience and the feeling about using the app as a whole, from every pixel and alignment, how the font size and the colors should look for the project, seeing those projects get implemented is like witnessing something close and personal to me get butchered into Frankenstein style.

@jrasm91

This month I spent a decent amount of time going through bug reports and was able to fix a handful of items, worked on adding CSP support, and made some progress on workflows and plugins.

Bug fixes

I fixed one issue, which I thought was pretty interesting. A user was getting this strange error message when trying to use the CLI:

It turns out the error was caused by the Immich server returning HTML where JSON was expected and then the client basically coerced it to a string for reasons, eventually leading to this runtime error. Once I had figured out what was happening the solution was pretty straightforward: return a 406 Not Acceptable response, instead of a 200 OK. Basically, if the client is requesting application/json, don't response with text/html. In hindsight, it seemed so obvious 😄.

Helmet

I also worked on making it possible to configure the Immich server with helmet, a library for managing security headers, such as Content-Security-Policy , Strict-Transport-Security, etc. There will be more information about this feature in v2.7.0.

Workflows & plugins

This is turning out to be a pretty big feature to build. I made a lot of progress this month on dynamic configuration, which means that we can generate entire forms from JSON configuration, which is important because configuration options are defined on a per plugin method basis.

This configuration, for example, generates something like this in the web application now: Dynamic configuration modal

Now that dynamic configuration exists, I'll be moving on to writing tests for the core plugin, and looking into additional triggers, like PersonRecognized.

@danieldietzler

For me, besides flying out to Austin for a week, March has been mostly around chores. Briefly peaking at >200 open PRs, I had (and still have 😅) lots of review work to do. But don't get me wrong; I strongly appreciate every single contribution, and I love that so many people find joy in working on the Immich code base. Barely being able to keep up with contributions is definitely one of the better problems to have! :P

Other than that, I fixed some bugs and updated a bunch of packages.

Notably, I was finally upgrade Kysely, our SQL query builder of choice, to its latest version. Hidden behind a small fix(helpers), 0.28.3 changed the return types of nested queries. Now, for a selected JSON column (e.g., from a sub-select), the fields in that object can only be strings, numbers, objects, arrays, or booleans. After all, that's the types JSON supports. For instance, there is no concept of something like a JavaScript Date.

However, both our previous ORM as well as Kysely on versions <= 0.28.2 did type those fields based on their actual types. This resulted in our code base relying on wrong types forever basically, causing it to be deeply spread within all of Immich server. After a bunch of prior refactoring to untangle our types, primarily in unit tests (which led me down a path of refactoring most of our unit tests in fact), I was finally able to upgrade Kysely in #26744 with a somewhat reasonable diff (it's still not the prettiest, but prior attempts were horrible in comparison lol). We didn't have to give up any type safety, and I didn't have to elude to any ugly casts. 🎉

@bwees

This month I made some more progress on the editing experience in Immich. My goal for the past 2 months has been to fix some of the limitations in the editing feature.

Mobile editing

The new mobile editing experience is in its final stages of review and should be coming soon to a phone near you ™️. We merged the majority of underlying requirements for mobile editing (websocket events, sync entities, API changes) for v2.6.0. The only part that remains in the new user interface.

Live Photo editing

I made some significant headway on bringing editing support to Live Photos. This will allow you to edit an image that includes a live video portion and have the edits apply to both parts (photo and video). The changes in the PR also lay the groundwork for full video editing support in the future.

Retro DVD source release

Retro DVD
Retro DVD

We recently sold the remaining retro DVDs from our stable release back in October. As such, we have released the source code for building the Alpine Linux based ISO that was burned onto the DVDs. You can check out the source code at https://github.com/immich-app/retro!

I worked on this project all the way back in August of 2025. It was the last week of my summer internship with Immich and originally started as a "Wouldn't it be funny if…." joke. I did some digging on how to make a bootable live DVD and I had a working image by the end of the week!

Huge shoutout to Zack for setting up the fulfillment pipeline to take orders from our merch store and forwarding them on to the DVD vendors in both the US and Europe. In addition we gave the option to purchase a product key with your DVD.

While the team was at FOSDEM 2026, we met Daniel Stenberg (creator of curl) and gave him a retro DVD!
While the team was at FOSDEM 2026, we met Daniel Stenberg (creator of curl) and gave him a retro DVD!

We sold over 500 DVDs since they were released! This was a super fun project to work on and now I, along with many others in the community, have a cool piece of Immich history!

Upcoming goals

Looking forward into April, we hope to have a final v2.7.0 release, and then start work on v3, which will include a handful of API breaking changes, and🤞 hopefully an initial release of workflows!

Well, that's it for this month. As always, if you find the project helpful, you can support us at https://buy.immich.app/.

Cheers,
The Immich Team