Sonata has been photographing Lithuanian festivals, clubs and artists for fifteen years. The work is dark, fast and made in rooms where nothing holds still. A calm grid of thumbnails would have been the wrong container for it.
The Problem
Two things needed selling, and only one of them was easy. Photography people already understand. The second offer - content published while the event is still running, Stories through the night and an edited Reel by midday tomorrow - is something most promoters have never bought, because most photographers deliver the day after, when it is too late for anyone to decide to show up.
That does not survive being explained in a paragraph. Nobody reads the paragraph.
What I Built
I handled the structure, content architecture, interaction design and development.
The homepage is one continuous scroll: photography, live content, who she is, how to book. The hero holds her name across three images that pull apart as you move down the page, so the first thing you meet is the work rather than a menu.
The live-content section is the centrepiece. Instead of describing the service, it plays a single night out on a timeline - 23:10 doors, 00:05 the room fills, 00:40 the headliner, 01:25 the last track, and the Reel at noon the next day - with a frame from each of those hours. By the end of it the offer has explained itself, and the prices underneath read as obvious instead of unfamiliar. A running list of the twenty-odd venues she has shot does the credibility work that a testimonial section usually gets asked to do.
Under the one-pager sit dedicated pages for each category: festivals, club nights, artists and DJs, and event content. Someone searching for a festival photographer lands on a full gallery rather than an anchor halfway down a homepage. Everything runs in Lithuanian and English.
Why WordPress
Sonata shoots most weekends, so galleries have to grow without an invoice attached, and the media library is already a tool she knows. The interaction lives in a hand-written theme rather than in plugins - roughly 38KB of CSS and 11KB of JavaScript for the whole site - so there is no page builder sitting between her and her own photographs, and nothing that quietly breaks on the next update.
The Trade-off
A site carried by motion is a site with more ways to go wrong: an old phone, a slow connection, someone who finds movement uncomfortable. Every animation runs off IntersectionObserver rather than continuous scroll listeners, and the whole motion layer switches off for anyone whose system asks for reduced motion. What remains still reads top to bottom as a portfolio. Motion tells the story here, but it never holds the content hostage.
WordPress PHP JavaScript









