Alexandre Bongiorno's photography portfolio
A bespoke editorial portfolio and its back-office for a photographer
Context
Alexandre Bongiorno, a Marseille-based photographer (documentary, portrait, landscape), needed a portfolio worthy of his work — and one he could keep alive himself, without going back to a developer for every new series.
The challenge
Ship a polished editorial site and a back-office simple enough for a non-developer photographer to manage 75+ photos, their order and their layout on his own — all on a tight infrastructure budget.
Work scattered across Instagram, no single place to show it properly, and a dependency on someone else for the smallest update.
A portfolio he runs himself: Alexandre adds, reorders and lays out his photos from a back-office, without touching a line of code.
The approach
Next.js 16 (App Router, Server Components, next/image for optimization), TypeScript and Tailwind CSS v4. An admin back-office protected by Auth.js v5: drag-and-drop upload, mouse reordering (dnd-kit), customizable sections. A deliberate architecture choice: images are stored on the server's own disk with a quota gauge rather than on a paid third-party service — for cost and data control. Persistence on Neon (serverless Postgres) via type-safe Drizzle ORM, with built-in visit and interaction tracking. Self-hosted deployment with a persistent volume.
Previews
Outcome
Delivered and live in production at bongiorno.nocly.fr, fully manageable by Alexandre himself. A client project taken end to end — from design to hosting — that showcases the product side (a CMS a non-technical user can actually run) as much as the technical side.