This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Affected surfaces
ReleasePort's take
Light signalGallery titles now appear by default; set "showTitle": false in config.json to hide them. LightGallery was replaced with PhotoSwipe v5, adding pinch‑zoom and native touch gestures.
Why it matters: Affects gallery UI configuration – hide the title via showTitle=false if undesired. Introduces new interaction capabilities (pinch‑zoom) for all lightbox users.
Summary
AI summaryUpdates Highlights, https://github.com/dimsemenov/photoswipe, and https://github.com/sachinchoolur/lightGallery across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Breaking | Medium |
Gallery title now shown by default; hide with showTitle=false in config.json Gallery title now shown by default; hide with showTitle=false in config.json Source: llm_adapter@2026-05-24 Confidence: high |
— |
| Feature | Medium |
Replaced lightGallery with PhotoSwipe v5, adding pinch‑zoom and native touch gestures Replaced lightGallery with PhotoSwipe v5, adding pinch‑zoom and native touch gestures Source: llm_adapter@2026-05-24 Confidence: high |
— |
| Feature | Medium |
Added multi‑select with selective download as zip for gallery images Added multi‑select with selective download as zip for gallery images Source: llm_adapter@2026-05-24 Confidence: low |
— |
| Feature | Medium |
Introduced optional month‑grouped gallery view (date grouping) Introduced optional month‑grouped gallery view (date grouping) Source: llm_adapter@2026-05-24 Confidence: low |
— |
| Dependency | Medium |
Serves Inter font locally instead of via CDN for privacy / no‑tracking Serves Inter font locally instead of via CDN for privacy / no‑tracking Source: llm_adapter@2026-05-24 Confidence: low |
— |
| Performance | Medium |
Server‑rendered HTML size reduced ~10× via data‑only payload and client‑side virtualisation Server‑rendered HTML size reduced ~10× via data‑only payload and client‑side virtualisation Source: llm_adapter@2026-05-24 Confidence: high |
— |
| Performance | Medium |
Virtualised rendering keeps DOM small for large galleries (e.g., 5,000+ photos) Virtualised rendering keeps DOM small for large galleries (e.g., 5,000+ photos) Source: granite4.1:30b@2026-05-24-audit Confidence: low |
— |
| Refactor | Medium |
Switched templating engine from EJS to Preact + JSX Switched templating engine from EJS to Preact + JSX Source: llm_adapter@2026-05-24 Confidence: low |
— |
Full changelog
v2.0 - Full gallery redesign
This is a complete rebuild of the gallery to match Immich's native look and feel, with major improvements for large galleries, and adding individual image selection for downloading.
Highlights
- New gallery design - justified-rows layout on desktop, edge-to-edge square grid on mobile, light/dark mode following system preference, all styled to match Immich
- New lightbox - PhotoSwipe v5 replaces lightGallery, with proper pinch-zoom, swipe-to-dismiss, and a much smaller bundle
- Handles huge galleries - virtualised rendering keeps the DOM small even for shares of 5,000+ photos (#201). Only tiles within +/- 1 viewport-height of the current scroll position exist in the DOM at any moment. Layout for all items is pre-computed up front so the scrollbar stays accurate. (example large(ish) gallery)
- Multi-select with selective download - long-press or click a tile's checkmark to enter select mode, pick photos, download just those as a zip
- Date grouping - optional month-grouped gallery view, to match Immich's date grouping (off by default)
- Blur placeholders - uses Immich's thumbhash data for a blurred preview behind every tile while the thumbnail loads
Changed
- Replaced lightGallery with PhotoSwipe v5 - different lightbox engine, smaller bundle, gestures and zoom work natively on touch
- Templating engine switched from EJS to Preact + JSX
- Server-rendered HTML is much smaller (around 10x reduction) - only the data flows to the client; tiles are rendered by JS via virtualisation
- Serve font locally rather than via CDN for privacy / no-tracking
Breaking changes
By default, the gallery title will now be shown, to match Immich's behaviour. In IPP 1.x the title was hidden by default. To hide the title, change showTitle to false in your config.json
Configuration migration
Legacy configs continue to work. A backward-compatibility shim at startup detects the old keys and maps them onto the new schema, then logs a single deprecation notice. You'll see something like:
[IPP] Top-level gallery keys (singleImageGallery, singleItemAutoOpen, showGalleryTitle, showGalleryDescription, groupGalleryByDate) are deprecated; please move them under ipp.gallery.*. See README.
To migrate, restructure your config.json from this:
{
"ipp": {
"singleImageGallery": false,
"singleItemAutoOpen": true,
"showGalleryTitle": false,
"showGalleryDescription": false,
"groupGalleryByDate": false
},
"lightGallery": {
"controls": true,
"download": true,
"mobileSettings": { "controls": false, "download": true }
}
}
…to this:
{
"ipp": {
"gallery": {
"singleImage": false,
"singleItemAutoOpen": true,
"showTitle": false,
"showDescription": false,
"groupByDate": false
},
"lightbox": {
"showArrows": true,
"showDownload": true,
"mobileArrows": false
}
}
}
The compatibility shim will keep your old config working in the meantime. The shim may be removed in a future major release.
Acknowledgments
This release brings together work from several open-source projects, used under their respective licenses:
- PhotoSwipe (https://photoswipe.com/) v5 - MIT
- Inter (https://rsms.me/inter/) by Rasmus Andersson - OFL-1.1
- thumbhash (https://github.com/evanw/thumbhash) by Evan Wallace - MIT
- Material Design Icons (https://pictogrammers.com/library/mdi/) - Apache-2.0
- Preact (https://preactjs.com/) - MIT
Breaking Changes
- Default gallery title is now shown; set `showTitle` to false in config.json to hide it.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About immich-public-proxy
Share your Immich photos and albums in a safe way without exposing your Immich instance to the public.
Related context
Related tools
Beta — feedback welcome: [email protected]