This is the story of how I ended up building a private, family-first photo sharing system after years of duct-taping existing tools together.
When our first child was born, we used a free app – one that had even been celebrated by TechCrunch – to announce the news to our family. Unfortunately, the app glitched and told everyone the wrong birthday, kicking off my long journey to share our family’s memories the right way.

A Simple Start
The formula was simple: Flickr was still popular, WordPress got the job done, and everyone – even my parents – used RSS readers. We’d snap a photo, upload it to Flickr, and the blog would notice the new content. Later I’d add email newsletters, MMS notifications, and inclusion of videos from YouTube. Grandparents, aunts, and cousins were able to keep up with our happenings without us spamming our social media feeds. What could be better?
Enter Internet Creeps
The site, both through Nginx rules and meta headers and robots.txt, was set up to tell search engines to ignore us. Remember when I earlier discussed using Flickr and YouTube for hosting the photos? We started seeing more likes and follows from people we didn’t know, and people who seemed unusually focused on videos like ours. Despite paid Flickr accounts and enhanced YouTube security settings, the creepers weren’t going away. At that point, it became clear that relying on public platforms – even with privacy settings – wasn’t enough.
Summarizing Needed Features
To ditch Flickr and YouTube, I needed a platform that had a couple capabilities:
- Ability to quickly upload photos and videos from my phone
- Multiple people being able to contribute to a shared album
- API, and ideally a webhook, for an external system to monitor updates
- Reasonably priced and low maintenance
Immich 2.0 Saves the Day
Although Immich development started in 2022, their October 2025 2.0 release added all the features that I needed. They have a beautiful API, an active community, a great Android and iPhone app, and their innovation seems to be accelerating. (Plus, their cursed knowledge section is a great read.)
Straightforward Hosting on AWS
There are many ways to host Immich because of its open source nature, and my AWS scales well and is cost effective:
- Elastic Container Service hosts two containers (main app and machine learning)
- Elastic File Service hosts the images and backups
- A tiny RDS PostgreSQL database
- A tiny Redis instance handles caching
- Cloudflare handles the security
All the Features Came Together
One of the biggest surprises after launching the new site was how much the kids enjoyed it. They had feature requests galore, and it made it very fulfilling to bring it together knowing they used it when they needed cheering up.
Version 1 was on WordPress, version 2 was a NodeJS SPA, and version 3 is back to WordPress. Although picking WordPress isn’t trendy, bundling it together in a plugin gave me all these features:
- Every page is secured behind a password that’s easy for kids and grandparents to access
- Automated syncing with Immich
- Email and MMS opt-in and opt-out
- Galleries in basic grid, fun masonry, and awesome justified format

- Integration with Immich’s facial recognition, so galleries can be limited to one or more people
- Galleries can be paginated or infinite scrolling
- Lightbox slideshows, using the brilliant Photoswipe framework
What Comes Next
I’ve rolled it out to my kids, and eventually I’ll scale it to the other parents in my network. My favorite source of feedback ideas is from my kids and my parents, so their requested tweaks take priority. There are plenty of businesses competing in the photo sharing space, and my focus is making this a secure and fun place for my family to keep our memories.
If you’re interested in trying it out, I’m considering a small private beta. Send me an email and let’s see if it’s a good fit—for your family and your comfort level with tech.