Case Study · Web Development

Let the photographs
do the talking.

A wedding and portrait photography website for the Costa Tropical, Spain — bahiaphotographer.com — built with an AI-assisted workflow for my own photography business, with every photograph framed, sized and translated by a custom build pipeline.

ClientBahía Photographer (own brand)
SectorWedding & portrait photography
LocationLa Herradura, Spain
LanguagesEN · ES · FR · PL · RU
StackPython-generated HTML · Netlify
Screenshot of bahiaphotographer.com — homepage with a full-screen wedding photograph and the Bahía Photographer wordmark.
Site — bahiaphotographer.com 1000 × 625 preview

The brief

A photography business sells with its photographs, so the website had one rule from day one: the photographs are the only background. No cream sections, no white cards, no stock textures — every screenful is a real photograph with the words sitting on top of it.

That rule creates hard problems. A photograph stretched across a wide laptop screen loses most of its height; the same photograph on a phone loses most of its width. Heads get cut off, text becomes unreadable over busy backgrounds, and a site with hundreds of large images can easily become slow. The site also had to work for couples and families who speak different languages, and to be something a search engine can actually index.

A photography site is only as good as the worst-cropped photograph on it.

The process

The site is generated by a small set of Python scripts rather than a website builder. AI did much of the drafting — code, copy, translations, structured data — and every result was checked on real screens before it shipped.

01 · Framing
Every photograph gets its own focal point
With one shared crop position, a measurement across the published set showed 138 of 275 photographs losing a head on a widescreen display. The build now runs on-device face detection (Apple's Vision framework — no cloud service, no model download) and gives each photograph its own anchor, so faces stay inside the frame at any screen size.
02 · Screen shape
The right photograph for the screen
Wide screens get landscape frames behind the text; phones get a portrait companion for the same section, so a couple is never sliced down the middle on a 390px screen. Gallery photographs keep their own proportions, in rows of one landscape or two portraits, and every photograph opens full size with one tap.
03 · Discoverability
A fixed archive and a fresh experience
Gallery pages list every photograph of a theme in plain HTML, with an image sitemap — the archive search engines index. Theme pages reshuffle their photographs on each visit from the same set, so returning visitors see something new without the site losing its indexed images.
04 · Languages
Five languages on one site
English, Spanish, French, Polish and Russian — including the legal notice and privacy notice. The translations were drafted with AI, and every sentence is checked for all five languages before a build is published. A language switcher in the header and a menu that measures itself keep the navigation on one line even in the longest language.
05 · Selling
Packages, WhatsApp and the legal groundwork
Each session type has package cards and its own detail page listing what is included. A floating WhatsApp button opens a pre-filled message in the visitor's language. A legal notice under Spanish law and a GDPR privacy notice are generated from one set of business details, and the fonts are self-hosted, so the site makes no requests to Google.

The stack

No CMS and no framework to keep upgrading — the generator writes plain HTML and CSS, and Netlify serves it.

Build
Python generator · Static HTML
Styling
Hand-written CSS · No framework
Hosting
Netlify · SSL · Global CDN
Framing
Apple Vision · On-device
Images
sRGB conversion · Up to four widths
SEO
Schema.org · Image sitemap · Galleries

Where it stands

The site is built and running as a preview while the portfolio is finalised. It is not yet open to search engines, so there are no traffic or ranking figures to report — this case study describes how it was built, not how it has performed.

What this does not mean

AI does not choose, grade or retouch the photographs. Every photograph is edited by hand in Lightroom and chosen by the photographer before it reaches the site, and the pipeline applies no automatic colour correction. The tools that check for soft focus or near-duplicate frames only flag photographs for review — they never remove anything on their own.

The code and copy were accelerated by AI. The decisions — what the site should feel like, which photographs represent the work, what to leave out — were human calls.

Need a site that shows your work?
Get an itemised quote in 24 hours.

Send the goal, the audience, and any reference sites you like. You'll receive a flat-fee proposal — fixed scope, fixed price, fixed timeline — within one working day.