36 Frames is a passion project of mine, built from the ground up for photographers who care about visual storytelling. You can see a sample portfolio at 36frames.me/@36frames.

The Problem: Where Did Visual Storytelling Go?

Instagram used to be a haven for photographers and visual storytellers. But over the years, it has transformed into something else entirely—a platform dominated by influencers, short-form videos, and one-off pictures chasing viral engagement. The art of sharing cohesive photo albums from a specific trip, event, or thematic series has been lost in the noise.

I believe deeply in the power of visual storytelling. Whether it's documenting a journey through a different culture, capturing the architecture of a city, or creating a themed photo essay, there's something magical about sharing a collection of images that tell a complete story. This is why I'm passionate about both digital photography and analog formats—8mm film, 16mm film, and classic film photography—because of their inherent documentary style and authenticity.

A Platform for Album-Based Photo Sharing

36 Frames was born from this need: a clean, simple platform where photographers can create beautiful albums and share their visual stories with friends, family, and the world—without algorithms, without ads, without the pressure to chase likes and engagement metrics.

It's a place for photographers who want to curate their work thoughtfully, whether that's a travel diary from Japan, a collection of street photography, an architectural study, or any other creative project that deserves to be viewed as a cohesive whole.

Building with Modern Technology

As someone passionate about technology and building products, I wanted 36 Frames to be built right—scalable, secure, and performant. While it might be over-engineered for its current scale, the infrastructure is designed to grow seamlessly as more photographers discover the platform.

The Tech Stack

The platform is built as a full-stack Next.js application with both frontend and backend written in TypeScript. This provides type safety across the entire codebase and makes the development experience much smoother.

For the database, I chose PostgreSQL with Prisma ORM, which offers excellent performance and a developer-friendly query interface. The data layer is robust and handles everything from user profiles to albums, photos, and metadata.

AWS Infrastructure

The deployment architecture runs on AWS and is managed entirely through Terraform scripts, ensuring infrastructure-as-code and reproducible deployments. Here's how it's structured:

  • Application Load Balancer (ALB) for intelligent traffic distribution
  • EC2 instances running the Next.js backend with elastic compute that scales up automatically as demand increases
  • AWS RDS for PostgreSQL providing managed, reliable database hosting
  • CloudFront + S3 for content distribution, ensuring fast image delivery globally

This setup allows me to deploy updates without any downtime for users, maintain security best practices, and scale horizontally when needed.

Image Optimization

Photography platforms live and die by their image delivery performance. I implemented a multi-layered optimization strategy:

  • Client-side compression using AVIF format, one of the most advanced image codecs available, which reduces file sizes dramatically while maintaining visual quality
  • AWS Lambda-based thumbnail generation following AWS's image optimization architecture, generating responsive images on-demand
  • CloudFront CDN for edge caching, ensuring images load quickly regardless of where users are located

Authentication & Billing

Security and user experience were top priorities. I integrated:

  • Corbado for passwordless, passkey-first authentication—no more passwords to remember or reset, just secure biometric login
  • Stripe for billing and subscription management, providing a reliable payment infrastructure

Built with AI Assistance

This entire project was developed using Cursor IDE, an AI-powered development environment. Throughout the development process, I collaborated with multiple AI agents:

  • Anthropic Claude for architectural decisions and complex agent-driven development
  • ChatGPT 4 for specific code generation and refactoring
  • Gemini Pro for specific feature implementations

The AI-assisted development workflow allowed me to move quickly from idea to implementation, while maintaining high code quality and following best practices. It's fascinating how AI can accelerate the creative process when building products you're passionate about—as a trained Engineer and Computer Scientist, I love the ability to leverage AI to help me build products I'm passionate about.

Over-Engineered, But Ready to Scale

Is the infrastructure over-engineered for a passion project? Probably. But that's the beauty of it—36 Frames is built on a foundation that can scale effortlessly. Whether it's serving 100 users or 100,000, the architecture can handle it. The Terraform-managed infrastructure means I can replicate or modify the setup with code, and the elastic compute ensures costs stay reasonable at low usage while scaling automatically when needed.

Join the Community

If you're a photographer who misses the days of album-based sharing, or if you simply want a clean, private space to showcase your visual stories, I'd love for you to try 36 Frames.

It's built by a photographer, for photographers—with respect for your work, your privacy, and the art of visual storytelling.