Skip to main content

§ masterplan.md

Concrete Photo Archives

A brutalist photography archive with massive thumbnails, stark captions and a search that feels like a database query.

All ideas
Brutalist

01

App overview and objectives

A photography archive presented as an archive: contact-sheet density, hard grid, filenames and metadata visible, powerful search, and prints for sale. Function is the aesthetic.

02

The problem worth solving

Photographers hide their work behind slideshows that show ten images. An archive interface lets serious viewers dig through thousands, which is where the value of a body of work actually lives.

03

Target audience

  • Primary — Photographers with deep archives and the editors and curators who mine them.
  • Secondary — Collectors buying prints.

04

Roles and permissions

  • Visitor — read-only public pages, can sign up.
  • Member — owns their own records, cannot see other users' data.

05

Core features

  • Dense contact-sheet grid with keyboard navigation
  • Series pages with sequencing and notes
  • Metadata-driven search: year, location, camera, subject, keyword
  • Lightbox with EXIF, caption and download rules per image
  • Print shop with sizes, editions and pricing
  • Licensing enquiry with usage-type selection

Deliberately later

  • Client lightboxes for editors
  • Bulk licensing agreements
  • Physical exhibition planner

06

Technical stack

React grid with virtualised rendering, a metadata database, and an image CDN with derivative sizes.

Why: Thousands of thumbnails must scroll at sixty frames per second; virtualisation and pre-generated derivatives are the only way.

Alternatives: A digital asset management platform (feature-complete, expensive and ugly) or a standard portfolio (cheap, cannot handle scale).

07

Conceptual data model

Photo — filename, capture date, location, camera, keywords, series, rights

Series — title, sequence, statement, cover

Edition — photo, size, paper, edition size, price, sold count

LicenseRequest — photo, usage type, territory, duration, status

08

Integrations

  • Image CDN with on-the-fly resizing
  • Payments for prints
  • EXIF extraction pipeline

09

UI design principles

  • Raw structure on display: visible grid, hard edges, black-on-white with one violent accent.
  • System or grotesque type at extreme sizes; no decoration that isn't structural.
  • Interactions are instant and blunt — no easing, no fades.

10

Security considerations

  • Watermark preview derivatives; originals never publicly reachable.
  • Signed URLs for any high-resolution delivery after purchase.
  • Track and rate-limit bulk scraping attempts.

11

Development phases

Phase 1 — Prove the core

  • — Dense contact-sheet grid with keyboard navigation
  • — Series pages with sequencing and notes
  • — Metadata-driven search: year, location, camera, subject, keyword
  • — Static content and design system in place
  • — Basic analytics

Phase 2 — Make it real

  • — Lightbox with EXIF, caption and download rules per image
  • — Print shop with sizes, editions and pricing
  • — Licensing enquiry with usage-type selection
  • — Accounts, sign-in and password reset
  • — Empty, loading and error states everywhere

Phase 3 — Polish and launch

  • — Performance, accessibility and SEO pass
  • — Legal pages, contact route and 404 handling
  • — Wire up: Image CDN with on-the-fly resizing
  • — Wire up: Payments for prints

Phase 4 — Grow

  • — Client lightboxes for editors
  • — Bulk licensing agreements
  • — Physical exhibition planner

12

Challenges and solutions

Risk — Metadata quality determines search usefulness

Solution — Ingest pipeline that extracts EXIF automatically and flags images missing keywords.

Risk — Grid performance at ten thousand images

Solution — Virtualised scrolling, tiny placeholder thumbnails, and pagination by series.

Risk — Print fulfilment logistics

Solution — Partner with a lab and start with three sizes and one paper.

13

Future expansion

  • Estate and archive management for other photographers
  • Institutional licensing
  • Book publishing

14

Page list (13 pages)

  1. 01 PUBLIC Archive — The full contact-sheet grid.
  2. 02 PUBLIC Series — Curated sequences with statements.
  3. 03 PUBLIC Search — Metadata-driven filtering.
  4. 04 PUBLIC Prints — Editions, sizes and purchase.
  5. 05 PUBLIC About — Biography, rights and licensing policy.
  6. 06 AUTH Sign up — Create an account with email or a social provider.
  7. 07 AUTH Log in — Return to the account, with error and lockout states.
  8. 08 AUTH Reset password — Request a reset link and set a new password.
  9. 09 APP (signed in) Account settings — Profile, email, password, language and delete account.
  10. 10 PUBLIC Contact — Contact form plus real address, phone and email.
  11. 11 LEGAL & SYSTEM Privacy policy — What data is collected, why, and how to remove it.
  12. 12 LEGAL & SYSTEM Terms of service — Rules of use, liability and account termination.
  13. 13 LEGAL & SYSTEM 404 not found — Friendly dead end with search and links back.

15

Page map

PUBLIC      AUTH               APP (signed in)      LEGAL & SYSTEM
──────────  ─────────────────  ───────────────────  ───────────────────
├─ Archive  ├─ Sign up         └─ Account settings  ├─ Privacy policy
├─ Series   ├─ Log in                               ├─ Terms of service
├─ Search   └─ Reset password                       └─ 404 not found
├─ Prints
├─ About
└─ Contact

key flows:
  Archive ──▶ Search
  Series ──▶ Archive
  Archive ──▶ Prints
  About ──▶ Prints