7 Building Blocks Framework

Sample Design: Photo Backup

Design: Photo Backup

This is a real example of what the design-with-blocks Claude skill hands you at the end of a 10-minute conversation. The doc below — and the architecture diagram on the skill page — are both produced automatically from one paragraph describing the app.

What you are building

A private photo backup app. Users sign in, their phone auto-uploads new photos to a personal library, and a fast thumbnail grid lets them browse on any connection. No social features, no comments, no algorithm. Just the photos.

Users and external forces

Features, decomposed

Feature 1: Upload a photo

Feature 2: Browse the photo grid

Feature 3: View one photo full-size

Block inventory

Instance Role Technology choice Why
Photo Service Sync upload, browse, signed URL issuing Docker Container + FastAPI Mobile clients hit one endpoint per action; FastAPI's async support keeps the connection pool tight under upload bursts.
Thumbnail Worker Async thumbnail generation Docker Container + Celery Standard async-job pattern in Python; integrates cleanly with Pillow for image resizing.
Thumbnail Jobs (Queue) Buffer between upload and worker RabbitMQ Durable, retry-friendly, decouples upload throughput from worker throughput.
Recent Photos Cache Per-user grid view cache Redis Single-key gets, sub-millisecond reads, TTL handles staleness automatically.
Photo Library (File Store) Originals plus generated thumbnails S3 (or MinIO if self-hosted) Designed for blob storage; clients fetch via signed URL without proxying through Photo Service.
App DB Photo metadata, user accounts, thumbnail URLs Postgres Structured data with relations (user → photos), indexed time-range queries for the grid view.
User Mobile-first humans iOS and Android web; uploads happen in the background, browsing is the active session.

To learn more about each building block — what it is, when to use it, common junior mistakes, and the patterns it shows up in — see systemthinkinglab.ai/learn.

Common mistakes to avoid

What to build next

Paste this design into Claude Code or Cursor and have it implement each block. Start with Photo Service and Postgres; the upload flow and the grid query are both small enough to ship in a day. Add the Thumbnail Queue and Worker once the synchronous flow works end-to-end. Add the Cache last, only after you measure that the grid query is the bottleneck.

What this skill cannot do for you

This skill gave you one design, this one time, with a Claude session doing the thinking. It cannot:

That is what Course I: Universal Building Blocks teaches.


Designed using the 7 Building Blocks framework by Kay Ashaolu. The original architecture diagram is on the skill page.

Apply What You Just Read

Two ways to put this block into practice: design your own app with the Claude skill, or play the building blocks game with Instagram, Netflix, and Uber.

Try the Claude Skill Play the Game