DEV Community

Andrew Kalik
Andrew Kalik

Posted on

Building a Private Photo Sharing Platform on AWS

In July 2024, my dad had a massive stroke.

In the weeks that followed, my sister, my wife, other family members, and I started going through my dad’s barn. We were not expecting much beyond tools and old boxes. What we found instead was almost 3,000 photos, handwritten letters, family recipes, notes, and other documents. Many of them had been sitting there for more than 15 years.

Some were in decent shape. Others were dusty, faded, warped, or brittle. All of them felt irreplaceable.

At some point, the question stopped being what did we find and became how do we make sure we do not lose this.

This Was Not a Photo App Problem

The emotional part came first. The technical problem came later.

We needed a way to:

  • Scan a large volume of photos and documents quickly
  • Clean them up enough to be readable and usable
  • Avoid passing fragile originals around
  • Share access privately with family across the United States
  • Ensure nothing disappeared if a laptop died or a service changed direction

This was not about building a public gallery or a social feed.

It was about preserving family history quietly and predictably.

Why I Did Not Use Facebook Instagram or a Consumer Photo Platform

I did not want this living on Facebook or Instagram.

Not because those platforms cannot store photos, but because I wanted:

  • Private sharing
  • No social feeds
  • No resurfacing or reminders
  • Clear ownership of the data
  • Predictable long term access

I also looked at consumer photo services. Most of them technically worked, but they required giving up control in ways that did not feel right for this situation.

I wanted something boring, understandable, and under my control.

Why This Turned Into an AWS Architecture

Eventually this stopped being a where do we upload photos question and became an infrastructure problem.

I deployed a private self hosted photo sharing platform on AWS and later presented it to my local AWS User Group as a real world case study.

The goal was not polish. The goal was durability and access.

Deployment Architecture

The platform runs on a simple AWS setup:

  • EC2 runs the application
  • EBS provides primary attached storage
  • S3 stores original scans and long term artifacts
  • Elastic Load Balancer handles HTTPS access

Family members access the system over HTTPS. Active data lives on EBS. Originals live in S3.

Nothing exotic.

Why I Chose to Self Host

Self hosting was not about ideology.

I needed:

  • Control over data
  • Independent backups
  • Predictable costs
  • A UI my family could use

What I Learned

Two things stood out.

  1. Emotional situations change technical priorities
  2. Simple systems are easier to trust and explain

Closing Thoughts

I did not set out to build a platform.

I set out to make sure we did not lose pieces of our family.

The architecture mattered, but the mindset mattered more.

  • Own the data
  • Keep the system understandable
  • Optimize for recovery

Top comments (0)