Kevin Mark Pass Photography
A rebuilt website and owner-managed CMS for a Johannesburg photography studio, moved from a hosted site builder to Astro and EmDash on Cloudflare.
Engagement record
- Sector
- Photography studio
- Engagement
- Web · Design
- Capabilities
- Web application · Headless CMS · Technical SEO · UX/UI design
- Delivery
- 4 primary outputs
From operational problem to working product.
Kevin Mark Pass Photography is a Johannesburg studio with more than two decades of experience across weddings, portraits, maternity, corporate headshots and commercial work, with in-house makeup by Storm Pass. Most prospective clients judge the studio on its imagery before they ever make contact, so the website is where the work has to land.
Challenge
The previous site, built on a hosted site builder, was holding the photography back. An audit in May 2026 measured a 38.9 MB homepage, mostly unoptimised images, taking 17.6 seconds to show its main content on mobile. None of its 11 pages had a meta description, there was no structured data, and AI search tools had no llms.txt to read. The studio needed a site that showed the work quickly, explained each service properly and could be found by people searching for a Johannesburg photographer.
Approach
We rebuilt the site in Astro with EmDash embedded as the CMS, running on Cloudflare Workers with D1 for content and R2 for the media library. Every page, photograph, navigation item and SEO field is editable by the studio, with drafts and revisions. The information architecture grew from 11 to 18 pages, giving weddings, portraits, maternity, corporate, commercial and modelling their own pages and adding a dedicated page for Storm Pass makeup artistry. The site publishes LocalBusiness, Service, Person, FAQ and breadcrumb structured data, with a CMS-generated sitemap and llms.txt. Galleries open in an accessible full-screen lightbox, and a structured enquiry form stores every submission in the CMS and emails it straight to Kevin.
Outcome
The new homepage is 6.5× lighter, dropping from 38.9 MB to about 6 MB, and layout shift fell from 0.481 to 0.002, so pages no longer jump while the photography loads. Every page now has its own description, share preview and structured data, and the studio publishes changes itself without waiting on a developer. We also produced launch announcement videos for the studio's and Evolvea's social channels.
What we delivered
- Astro and EmDash rebuild on Cloudflare Workers, D1 and R2
- 18-page service architecture, including a dedicated Storm Pass makeup page
- Structured data, sitemap and llms.txt generated from the CMS
- Enquiry flow with CMS storage and email delivery, plus launch videos in square and vertical formats
Related services
Interface evidence.
The screens below show how the product turns its core workflow into a practical day-to-day experience.