All posts
Hobby project

Image Blocx: Shared Albums

Hobby Project·2025 - Present
FlutterDartSupabaseiOS

A hobby iOS app for sharing photo albums with friends and family. Built on weekends to explore shared-album UX patterns with Flutter and a Supabase backend — no ads, no monetisation, just a fun side project.

Image Blocx home screen
Image Blocx shared album
Image Blocx album grid
Image Blocx photo detail
Image Blocx invite flow
Image Blocx settings

Overview

Image Blocx is a small iOS side project I built to explore shared photo album experiences. Users create albums, invite collaborators, and add photos that sync across devices. It's intentionally lightweight — the goal was to see how quickly I could ship a polished multi-user photo flow on my own time.

Technical Implementation

Built with Flutter and Dart for iOS, backed by Supabase for authentication, Postgres storage, real-time album updates, and object storage for media. Image uploads are compressed client-side before being pushed to storage, and thumbnails are served via signed URLs so albums stay snappy even over a slow connection.

Why Build It

This one started as an excuse to play with Supabase real-time subscriptions and Flutter's image pipeline in a context that wasn't tied to a production Itinatour release. It's a hobby project in the truest sense — small scope, no deadline, no customers to support, just something I can iterate on when I want to try an idea.

What I Learned

Shipping Small

Keeping the scope deliberately tiny made it obvious how much friction I'd been adding to bigger projects. No roadmap, no backlog — just the smallest usable version, shipped to TestFlight in a weekend. It's a reminder of how quickly you can move when you remove the ceremony.

Supabase Real-Time in Practice

Implementing live album updates with Supabase's real-time channels taught me the practical edges of multi-device sync — ordering, debouncing, reconciling optimistic updates with server state, and choosing when real-time is worth the complexity versus plain polling.

Key Challenges

  • Keeping uploads fast and reliable over flaky mobile connections
  • Handling multi-device album state without over-engineering sync

Links