Skip to content
Portfolio websitesClient projects · 2026

Portfolio websites, from mockup to launch

For a sports photographer, then for a documentary filmmaker, I designed, developed and launched their websites.

BKBSHOTS
How do you let visitors browse hundreds of images without ever making them wait?
Nedim Torun
How do you make people want to see the films, then contact the director?
My part
I decide and test, Claude Code writes the code.
Deliverable
2 live websites, hosting
Role
website design, development, launch
Clients
sports photographer, documentary filmmaker
Team
solo, with Claude Code

“The watchword for the site is fluidity and infinity.”

The photographer covers sport: AFCON, Six Nations, Diamond League. His photos are often dark and all in portrait format. His site had to scroll through them endlessly, without ever distorting them.

Decisions

  • Écran concerné : A single word to change project

    A single word to change project

    The scroll wheel and dragging always move through the photos. Changing project only happens through this list.

  • Écran concerné : The photos stay visible

    The photos stay visible

    Only a light veil: the series changes live behind the list. Clicking another project shows it without closing the list.

  • Écran concerné : An endless mosaic

    An endless mosaic

    It extends in both directions, and two visible tiles never show the same photo.

  • The photo travels from one view to the otherWhen zooming, as between SERIES and ALL, it leaves from its exact place and returns to it: you never lose what you were looking at.
  • A cross to leave the zoomEsc and the site name already closed it, but nothing on screen said so. The cross, drawn like the arrows, also works with the keyboard and by touch.
  • The menu in negativeThe names of the projects not selected invert the photo they cover, like all the text on the site. The selected project is the only one that stays white.
  • Focus pointsSeven focus frames, as in a viewfinder, show loading, the position in the series and the selected project.

What I learned

  • No bounceI ruled out movements that overshoot their target: they drew the eye to the movement, not to the photo.
  • The real phone has the last wordA black screen only appeared on iPhone. An error log displayed on the phone helped find the cause.
  • Every decision is written downI decide and test, Claude Code writes the code. Each choice is written down with its reason, so that no fix gets undone later.

No fades: what arrives moves up, what leaves moves back down.

The director makes documentaries, short and feature-length films. His site had to show his films first, then give people a way to contact him, in French as well as English.

Decisions

  • Écran concerné : The film first

    The film first

    The player takes up all the space, at the same distance from the name as from the bottom bar.

  • Écran concerné : Docked

    Docked

    A downward gesture docks the video on the left and opens the description. There is no in-between position.

  • Écran concerné : Two films per row at most

    Two films per row at most

    So that two projects are never confused. On hover, the film's video starts playing in its tile.

  • The next film appears on hoverIts video follows the mouse as a thumbnail. A sideways gesture changes film, one at a time.
  • A single action stands out“Watch the full film”, in white on black, just below the synopsis.
  • The status, nothing elseIn the grid, each film only shows its title and its status: the year, or “In production”. The rest is in the description.
  • Loading opens onto the filmThe loading line stretches to the width of the video, then a window opens in its place: you land straight on the film, without a fade.

What I learned

  • Video on iPhone has its own rulesMuted sound, inline playback, Low Power Mode: each safeguard in the player answers a problem seen on iPhone.
  • Hierarchy without shrinkingNo text under 14 px: hierarchy comes from weight, grey and letter spacing.
  • A single typefaceOne variable font carries the site's three voices: the text, the numbers and the poster titles.

All projects