FabArto is the art project of Fabrice LABIT, a Paris photographer for whom I also built the Maison Ozaé website. The domain spent eighteen months as a holding page while the work took shape: a full screen image, the project name, two links. Since October 2026, fabarto.eu is the portfolio it was waiting for: 60 galleries, 1414 photographs, in French and English, 130 prerendered pages served as static files.
In pictures
The project in detail
The photographs arrive through a Nextcloud deposit Fabrice fills himself, one folder per model. The first version read the selection from his own export names: a file marked Instagram had already cleared a platform that forbids nudity, so it went on the site; a Patreon, HD or print export stayed out. The rule was elegant, and it was wrong.
Fabrice asked whether his galleries really carried all his photographs. Counting said no: 1193 frames published out of the 1414 in the deposit, 221 missing, and in one model’s gallery 11 shots showing out of 91. The filter is gone, every deposited file is converted, and an audit now matches the deposit against the gallery folder by folder. It leaves 1414 photographs for 1617 files, because one crop per frame is kept: that is a choice, and Fabrice can revisit it.
Ingesting is not publishing. Every gallery carries a flag that only lifts once the model’s written release is in hand: while it is down, the images sit in the build but the page shows its skeleton and says the release is awaited. That is the difference between a page kept out of search and a page that shows nothing: a noindex tag keeps a page out of search engines, it stops nobody from reading it.
At conversion each photograph becomes four files: AVIF and WebP, at 640 pixels for the grid and 1024 for the viewer, which makes 5630 files for 1414 photographs. Metadata is stripped on the way. Camera EXIF carries the GPS coordinates of the shoot and the owner’s name, and these are photographs of identifiable people: the location of the session is not ours to publish.
The age gate works without JavaScript: a CSS rule hides the site until the answer is given, so a visitor with scripts off sees nothing by default. The answer is remembered by the browser, and if storage is refused the visit stays open for the session rather than hitting a dead button. The site also carries the RTA label parental filters read. Measured on 29 October 2026, it scores 99 for performance on desktop Lighthouse, with its main paint at 0.7 second on a home page that loads sixty covers.





