Elijah Kasujja

Case study · 06

Watsemba Miriam

A documentary photojournalist's archive rebuilt as a structured site, with 32 posts and 316 photographs migrated into Sanity and four strands of work held in one content model.

Year
2026
Role
IA, UX/UI, Next.js development, Sanity content model, archive migration
Stack
Next.js · Sanity · Photography · Uganda
Live
miriamwatsemba.com

01 · The brief

What the client needed.

Watsemba Miriam had years of published work spread across an ageing site: documentary reportage, photo stories, studio portraits and vlogs, all flattened into one feed. She needed each strand to stand on its own, the archive to survive the move intact, and a way to publish new work herself.

02 · Discovery & IA

Structure, audience and sitemap.

The archive came first. Before any layout work, I modelled what a photograph, a post, a photo story, a studio sitter and an external publication each needed to hold, then mapped the existing 32 posts onto that model. That decided the structure: four strands of work with their own indexes rather than one chronological feed, since a picture editor and a portrait client arrive looking for entirely different things.

Sitemap · miriamwatsemba.com

08 routes · 04 work strands

Home //about/photo-stories/blog/mpeak-studios/publications/youtube/media-mentions/contact/blog/[slug][portrait]POST RECORDcategory · series · cover · bodycomments · archived · original URLEDITOR SURFACES/studio · Sanity, embedded/api/revalidate · publish hookShe publishes; only the affectedpages rebuild.
  • ·Four strands of work sit side by side rather than in one feed: documentary posts, photo stories, Mpeak Studios portraits and vlogs. Each has its own index, so a picture editor and a portrait client never have to wade through each other's pages.
  • ·32 posts and 316 photographs were migrated from the previous site into Sanity, keeping each post's original URL on the record so nothing published before the rebuild loses its provenance.
  • ·Publishing in the Studio fires a webhook at /api/revalidate, which rebuilds only the pages that changed rather than the whole site.

03 · Wireframes & UX

From wireframes to prototype.

For a photographer, the wireframe question is how little can sit around the picture. I used this stage to settle where the photograph ends and the reading starts, how a post declares its series without a heavy sidebar, and how comments and related work close a page without pulling attention back from the images.

Documentary post wireframe

Mid-fi · /blog/[slug]

Watsemba MiriamStories · Blog · Studios · PublicationsContactLead photograph, full bleedPhotographCATEGORYDocumentarySERIESWater and landDATEMarch 2026The women rebuilding the wetlandOriginal URLComments · per post, switchableComment threadLeave a commentMore from this seriesRelated photographRelated photographRelated photographView the series0102030405
  1. 01Category and series carry across posts, so a body of work reads as one thread
  2. 02Photograph leads; the headline sits under it rather than competing with it
  3. 03Original URL is kept on the record, so migrated posts stay traceable to the old site
  4. 04Comments are per-post and can be switched off without touching the template
  5. 05Related work pulls from the same series before falling back to the category

04 · Outcome

What changed after launch.

The archive moved across in full: 32 posts and 316 photographs, each post keeping the URL it was published under before the rebuild. Content now lives in Sanity, the Studio is embedded in the site itself, and publishing triggers a rebuild of only the pages that changed, so Miriam adds work without a developer in the loop.