Immich-Frame
Immich-Frame is a self-hosted photo galleries tool that provides awesome way to display photos as a digital photo frame.
A companion app to the self-hosted Immich photo server, honestly reviewed. No marketing fluff, just what you get when you put your own photos on your own screen.
TL;DR
- What it is: A self-hosted web app that turns any screen with a browser into a digital photo frame, pulling images directly from your Immich photo library [5].
- Who it’s for: Immich users who want to display their photo collection on a TV, tablet, Amazon Echo Show, or Raspberry Pi screen without paying a monthly subscription or uploading photos to a third-party frame service [1][5].
- Cost savings: Commercial subscription frames (Aura, Skylight) charge $7–10/month on top of $150–250 hardware. ImmichFrame is free software; the only hardware cost is a screen and optionally a $35–60 Raspberry Pi [1][2].
- Key strength: Zero-configuration slideshow once connected to your Immich server — any browser becomes a frame. Works on devices you already own [5].
- Key weakness: Requires Immich already running as a backend. If you’re comparing it to ImmichKiosk (the main alternative), at least one hands-on reviewer found ImmichKiosk faster with a cleaner interface [1].
What is Immich-Frame
Immich-Frame is a web application and optional native client that connects to an existing Immich photo server via its REST API and serves a full-screen slideshow. You point it at your Immich instance, give it an API key, and any browser on your network — a TV, a tablet velcroed to the wall, an old iPad, an Amazon Echo Show — becomes a live photo frame cycling through your personal photo library [5].
The project is not affiliated with the Immich team — that disclaimer is prominent in the README — but it is purpose-built as a companion to Immich specifically [GitHub README]. The backend is C# / ASP.NET Core (73.8% of the codebase), the frontend is SvelteKit (16.5% Svelte, 5.4% TypeScript), deployed via Docker [GitHub]. As of this review, the project sits at 1,953 GitHub stars, 85 forks, 33 contributors, and 42 releases, with v1.0.32.0 shipping March 2, 2026 [GitHub].
The license is GPL-3.0, not MIT — worth noting if you’re planning to embed it in a commercial product. For personal use, it’s a distinction without a difference.
Why people choose it
The setup-and-forget digital photo frame is an idea that predates smartphones, but the commercial implementations have drifted into subscription territory. Aura Frames and Skylight both charge monthly fees just to keep your own photos on your own screen. Amazon’s Echo Show avoids that but ties your display to Prime and Alexa. Apple TV’s screensaver is close but limited to iCloud photos.
The r/selfhosted and Immich communities have been solving this with a few different open-source tools, and Immich-Frame occupies a specific niche: you already run Immich, and you want the path of least resistance to a frame [5][1].
Cybertrainer.uk’s writeup [5] describes the appeal plainly: “The service hosts a webserver and loads the photos up in a full-screen mode — you can then display this on any device you have (Amazon Echo Show, Smart TV, tablet, phone, etc.) around the house.” The sell is ubiquity — any screen, no dedicated hardware required beyond what you might already own.
The fanyangmeng.blog author [1] tried three implementations (ImmichKiosk, ImmichFrame + MagicMirror, and ImmichFrame standalone) while building a custom Raspberry Pi frame as a gift, and offers the most direct comparison available. The conclusion was nuanced: ImmichFrame works, but ImmichKiosk won on speed and interface cleanliness. ImmichFrame still made the cut as the base for a MagicMirror integration, where its web output could be embedded inside MagicMirror’s modular display — adding clock, weather, and mirror-style overlays that ImmichKiosk doesn’t support in the same way [1].
The practical reason people land on ImmichFrame over ImmichKiosk specifically: overlay richness and the MagicMirror integration path. ImmichFrame natively supports overlaying date/time, photo metadata (location, capture date, album name), and transitions — features that matter if you want information density on the frame, not just a clean photo [5].
Features
Based on the documentation at immichframe.dev, the GitHub repository, and first-hand descriptions from the articles:
Core slideshow engine:
- Full-screen web-based slideshow pulling from Immich albums or the full library [5]
- Configurable display duration per photo and transition effects [5]
- Photo metadata overlays: location, capture date, album name [5]
- Date and time overlay [5]
- REST API for external control [GitHub merged profile]
Connectivity:
- Connects to Immich via API key — the only credential needed is what Immich already generates from its Account Settings page [5]
- Web deployment: any browser on your LAN can load the frame URL
- Native client mode available (Install_Client.md in the repository), separate from the web mode [GitHub]
Deployment options:
- Docker (primary recommended method) [2][5]
- Supports Raspberry Pi — the community has built full frame setups on both Pi Zero 2 W and Pi 5 [1][2]
- The project ships with templates folder, suggesting config preset support [GitHub]
Integration with MagicMirror:
- ImmichFrame’s web output can be embedded as a module inside MagicMirror², enabling mixed displays (photo + clock + weather) on a single screen [1]
- A dedicated MagicMirror module (MMM-ImmichSlideShow by pelaxa) provides the bridge [1]
What it does not have:
- Any built-in photo storage — it is purely a display layer over Immich [5]
- Standalone operation without an Immich backend
- Face recognition, search, or any of the AI features in Immich itself
Pricing: commercial frames vs self-hosted math
Immich-Frame has no SaaS tier and no subscription. The meaningful cost comparison is between commercial subscription photo frames and a DIY setup.
Commercial photo frame services:
- Aura Frames: hardware $130–200 + approximately $8/month subscription for multi-user sharing; photos stored on Aura’s servers
- Skylight Frame: hardware ~$160 + $40/year subscription for premium features
- Amazon Echo Show 10: hardware ~$250, no monthly fee, but photos pulled from Amazon Photos (Prime) and Alexa ecosystem lock-in
- Google Nest Hub: hardware ~$100, tied to Google Photos
Self-hosted with ImmichFrame:
- Software: $0 (GPL-3.0)
- If you already run Immich: additional cost is effectively $0 — run ImmichFrame as a sidecar container
- New Raspberry Pi frame build: approximately $60 total for Pi Zero 2 W + 7-inch screen + SD card, based on the fanyangmeng.blog parts list [1]
- Raspberry Pi 5 with a nicer screen: $80–120 depending on display size [2]
- Existing smart TV or tablet: $0 additional hardware
Concrete savings over three years against an Aura Frame:
- Aura: $150 hardware + ($8 × 36 months) = $438
- ImmichFrame on Pi Zero 2 W: $60 hardware + $0/month = $60 if you already pay for the VPS running Immich
The subscription math is less relevant here than with workflow tools because the frame market is primarily hardware + perpetual software, not per-task pricing. The real pitch is data sovereignty: your photos stay on your server, not a photo-frame startup’s cloud. One company shutting down — or pivoting its pricing — doesn’t break your frame [1][5].
Deployment reality check
The setup is a two-step dependency chain: first you need a running Immich instance, then ImmichFrame on top of it.
If you already run Immich, adding ImmichFrame is straightforward. The cybertrainer.uk walkthrough [5] describes it as: generate an API key from Immich’s Account Settings, paste it into the ImmichFrame Docker Compose environment variables, launch the container, open a browser tab at the configured URL. The API key generation is the only Immich-side action required, and the key is scoped to read access.
If you’re starting from scratch, the Robin Ingelbrecht Medium article [2] walks through the full Raspberry Pi path: flash Raspberry Pi OS, SSH in, install Docker, install Immich via docker-compose, configure ImmichFrame as an additional container. Realistic time for someone comfortable with SSH and Docker: 1–2 hours for the full stack. For a non-technical person following a guide step-by-step: a full afternoon, especially if you need to troubleshoot network routing or screen resolution [1].
The fanyangmeng.blog guide [1] goes deeper on the hardware layer — screen config file edits for HDMI output, DietPi as a lighter OS alternative to Raspberry Pi OS, Tailscale for remote management so you can SSH into your frame from anywhere. These are optional but practical additions for a permanent install.
What can go sideways:
- Screen resolution: if using a non-standard display (like the 7-inch 1024×600 panel in the fanyangmeng.blog build), you’ll need to add custom HDMI config lines to
config.txtbefore the OS even recognizes the screen [1]. This is a Pi-hardware issue, not an ImmichFrame issue, but it’s part of the real setup experience. - Kiosk mode: getting the browser to launch full-screen on boot requires additional OS-level configuration (browser autostart flags, window manager settings, or DietPi’s autostart option) — none of this is handled by ImmichFrame itself [1].
- MagicMirror path adds setup complexity: if you want the overlay/widget version of the frame, you need Node.js, MagicMirror, and the MMM-ImmichSlideShow module, roughly doubling the setup time [1].
- The 33 contributors and community-driven maintenance is healthy for a companion project, but ImmichFrame lives downstream of Immich’s API. If Immich changes a breaking endpoint, ImmichFrame needs an update — the project has shipped 42 releases, so the cadence is active, but it’s worth tracking [GitHub].
Pros and cons
Pros
- Free, forever. GPL-3.0, no subscription, no per-device fee. Every commercial photo frame subscription you cancel is $7–10/month back in your pocket [5].
- Any screen becomes a frame. No proprietary hardware required — TV, tablet, phone, Echo Show, old iPad, repurposed laptop. If it has a browser, it works [5].
- Metadata overlays. Date, time, location, album name, capture date — more display options than most commercial frames offer without a premium tier [5].
- MagicMirror integration. For users who want a real “smart mirror” setup with weather, calendar, and photos combined, ImmichFrame plugs into MagicMirror via MMM-ImmichSlideShow more naturally than ImmichKiosk [1].
- Active development. 42 releases and v1.0.32.0 as of March 2026 indicates the project is being maintained, not abandoned [GitHub].
- REST API. External control is possible — automation scripts can trigger actions [GitHub].
- Native client option. Beyond the web mode, an Install_Client path exists for dedicated installs [GitHub].
Cons
- Hard dependency on Immich. Zero standalone value — if your Immich server goes down, your frame goes blank. If you’re not already committed to the Immich ecosystem, this is the wrong tool to start with [5].
- Slower and less polished UI than ImmichKiosk. The fanyangmeng.blog author tested both directly and chose ImmichKiosk for the final gift: “faster and had a cleaner interface, making it more suitable for a digital frame” [1]. This is the most honest competitive data available.
- Kiosk mode is DIY. Making the frame autostart in full-screen on a dedicated device requires OS-level configuration that ImmichFrame doesn’t handle — it’s a browser tab, not a locked-down appliance [1].
- GPL-3.0 license is more restrictive than MIT. Fine for personal use, problematic if you want to embed or redistribute [GitHub].
- No documentation in README. The README is minimal — just installation pointers to immichframe.dev. If the external docs site goes down, the README doesn’t help you [GitHub README].
- No built-in weather, calendar, or widget overlays. Photo metadata overlays exist, but for anything beyond that (clock widget, weather, headlines), you need MagicMirror on top [1].
- MagicMirror path is meaningfully more complex. Node.js, MagicMirror install, separate module — doubles the setup surface area [1].
Who should use this / who shouldn’t
Use Immich-Frame if:
- You already self-host Immich and want a frame without adding another backend service.
- You have a spare TV, tablet, or screen and want to display photos from your private library without touching a subscription service.
- You want metadata overlays (location, date, album) on each photo — details that clean commercial frames often strip out.
- You’re interested in the MagicMirror integration path for a full smart-mirror build.
Use ImmichKiosk instead if:
- You want the cleanest, fastest photo display and don’t need widget overlays or MagicMirror — the fanyangmeng.blog direct comparison found ImmichKiosk faster with a better interface [1].
- You’re building a dedicated frame device (Raspberry Pi or similar) where raw display performance matters.
Skip ImmichFrame entirely if:
- You don’t run Immich and aren’t planning to — this is not a standalone solution.
- You’re a non-technical founder who’s never SSHed into a server and doesn’t want to learn. The baseline requirement here isn’t just “deploy Docker” — it’s “maintain a running Immich instance and add a second service on top of it.”
- You want fully offline, LAN-only operation with no reverse proxy — achievable, but the documentation path requires some investigation.
Alternatives worth considering
- ImmichKiosk (damongolding/immich-kiosk) — the direct competitor within the Immich ecosystem. A hands-on comparison found it faster and cleaner than ImmichFrame for pure photo display [1]. If you don’t need MagicMirror integration, start here.
- MagicMirror + MMM-ImmichSlideShow — the full widget-overlay stack. More setup, more surface area, but produces a multi-information display (photos + clock + weather) that neither ImmichFrame nor ImmichKiosk alone matches [1].
- Immich’s own screensaver — Immich itself has built-in screensaver/slideshow functionality accessible from the web app. For a dedicated device already running the Immich frontend in full-screen browser mode, the separate ImmichFrame service may be redundant.
- DAKboard — a commercial SaaS that can pull from various photo sources including Immich-compatible APIs. Free tier exists; paid tiers add customization. Relevant if you want a managed solution with calendar and weather without running MagicMirror yourself.
- Aura Frames / Skylight — commercial hardware + subscription. Better onboarding, worse long-term cost, photos leave your server. Worth considering if the DIY path genuinely isn’t an option.
Bottom line
Immich-Frame is a competent, actively-maintained companion to Immich that solves one problem well: turning any browser tab into a photo slideshow from your self-hosted library. The metadata overlays and MagicMirror compatibility give it a concrete use case that the cleaner ImmichKiosk doesn’t fully cover. But the comparison is important to be honest about — a reviewer who tested both in production on the same hardware picked ImmichKiosk for a final gift project, citing speed and UI quality [1]. ImmichFrame is not the best tool in its category for pure frame use; it is the better tool when you specifically want MagicMirror integration or richer metadata display. For a non-technical founder, the entry cost here is high: you first need Immich, then Docker knowledge, then OS-level kiosk configuration. If that stack sounds manageable, the subscription-free outcome is real — $7–10/month back in your pocket indefinitely, photos that never leave your server, and a frame that works on hardware you already own.
Sources
- fanyangmeng.blog — “Build a Self-hosted Digital Frame” (Oct 27, 2024). https://fanyangmeng.blog/build-a-selfhosted-digital-frame/
- Robin Ingelbrecht, Medium — “Transform Your Raspberry Pi into a Digital Photo Frame” (Oct 30, 2024). https://ingelbrechtrobin.medium.com/transform-your-raspberry-pi-into-a-digital-photo-frame-09d053d4fb9b
- DPReview Forums — “photo backup.. - self hosted: is immich the best out there”. https://www.dpreview.com/forums/threads/photo-backup-self-hosted-is-immich-the-best-out-there.4811025/
- Reddit r/selfhosted — “Immich vs photoprism”. https://www.reddit.com/r/selfhosted/comments/1doatsa/immich_vs_photoprism/
- Cybertrainer.uk — “App 3 – Immich Frame”. https://cybertrainer.uk/self-hosting/container-3-immich-frame/
Primary sources:
- GitHub repository: https://github.com/immichframe/immichframe (1,953 stars, GPL-3.0, 33 contributors, 42 releases)
- Official documentation: https://immichframe.dev
- Live demo: https://demo.immichframe.dev
Features
Integrations & APIs
- REST API
Replaces
Related Media & Streaming Tools
View all 334 →Immich
95KHigh-performance self-hosted photo and video management — automatic backup, ML-powered search, and a Google Photos-like experience on your own server.
Jellyfin
49KThe volunteer-built media solution that puts you in control of your media. Stream movies, shows, music, and photos to any device from your own server.
PhotoPrism
39KAI-Powered Photos App for the Decentralized Web. Tag and find pictures automatically without getting in your way.
Cobalt
39KSave what you love without ads, tracking, paywalls or other nonsense. Just paste the link and you're ready to rock.
qBittorrent
36KAn open-source software alternative to uTorrent. Feature-rich and runs on all major platforms.
SRS
29KSimple, high efficiency, realtime video server. Supports RTMP, WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH and GB28181.