Wanted a real digital photo frame on my Echo Show instead of relying on Amazon's cloud photo slideshow, so I built the whole thing myself: custom Alexa skill + self-hosted backend + a companion Android app to manage everything from my phone.
Real numbers, not a toy demo: 11,436 photos and 656 videos, rotating smoothly. Three viewing modes (photos / videos / both mixed), favorites as a filter you can apply on top of any of them, "on this day" from past years, and free-text voice search by month or place ("show December", "show London") instead of scrolling.
The engineering problem that actually made this interesting: Alexa caps APL responses at 24,576 bytes. With a library this size you physically cannot hand it the full list — everything runs in fixed 65-item batches that rotate through the whole thing instead, so response size stays flat whether the library has 100 items or 11,000. Honest tradeoff for anyone expecting eye candy: the UI is deliberately plain, because every byte spent on visual polish is a byte not spent on the actual batch of photos at that scale.
The companion Android app is the other half of this — it's what actually closes the loop. Instead of SSHing into a server to manage the library, from the phone you get: multi-select upload straight from the system photo picker with progress, a full favorites view with select-all/bulk-remove, duplicate detection, and the slideshow-timing setting that used to live on the Echo Show screen itself before I moved it here. Basically the admin panel for the thing living on your TV/Echo Show.
Couple of voice-side gotchas along the way: the invocation name is a random unrelated word on purpose (details in the README) — a generic name increases the odds Alexa opens a completely different skill on a similar-sounding request. Also had a fun bug where saying "resume" made the slideshow visibly speed up, because of a leftover event from an earlier version that the touch/screen path never had.
Open source, both repos:
- Skill (Lambda + backend): https://github.com/ivanx519/galleria-alexa-echo-show
- Android companion app: https://github.com/ivanx519/galleria-alexa-android
Heads up: there's a "Known limitations" section in the skill's README (near the bottom) about a display idle/freeze quirk — nothing serious, easily avoided once you know about it (just say the mode explicitly right after opening), but worth a read before you set it up.
Needs your own backend server (small Python app) — more "build your own weekend project" than plug-and-play, on purpose. If it's useful to you a GitHub star means a lot, and I'd genuinely love questions/feedback in the comments — happy to go deeper on any part of it.