All work

Studio Index

A lightweight publishing system for a small photography collective — built so five people with no technical background could ship new work without opening a code editor.

Year
2024
Role
Full-stack development
Stack
Astro, SQLite, Cloudflare R2, Alpine.js

The brief

A five-person photography collective needed a shared site where each member could publish series of images without depending on a developer for every update. The constraint that shaped everything: it had to be genuinely simple to use, not “simple” in the way most CMS admin panels claim to be.

Approach

Rather than reaching for an off-the-shelf CMS, I built a small admin view backed by SQLite and object storage, with an upload flow scoped to exactly one job — drop images, reorder them, write a caption, publish. No rich text editor, no page builder, no permission matrix to configure.

The public site is statically generated and rebuilt on publish, so it stays fast regardless of how much traffic a series gets, and there is no live database query on the read path at all.

Details that mattered

  • Images are processed into three sizes on upload and served from object storage directly, keeping the origin server nearly idle.
  • Captions and sequencing are stored separately from the images themselves, so re-ordering a series never touches the files.
  • The admin view and the public site share the same design tokens, so previewing a series before publishing looks exactly like the live page.

Outcome

All five members publish independently now. Average time from “photos selected” to “series live” is under ten minutes.

Next project

Northbound