HS Schultz
Construire un site de galerie qui disparaît. Une leçon sur quoi NE PAS construire.

Hermann Sebastian Schultz est un peintre. Abstraction minimaliste. Ses toiles sont silencieuses-dépouillées de récit, le geste réduit à un murmure.
Quand il m'a demandé de construire sa galerie en ligne, le brief était 6 mots : "Fais-le aussi silencieux que mon travail."
J'ai construit un CMS sur-mesure from scratch avec Python Flask. Pas de WordPress. Pas de Squarespace. Pas de templates.
C'est l'histoire d'un projet qui m'a appris la discipline d'en faire moins.
Le Problème avec Tout le Reste
Hermann a essayé les suspects habituels : WordPress, Wix, Cargo Collective. Tout semblait faux.
Trop bruyant. Trop de fonctionnalités qu'il n'utiliserait jamais. Tableaux de bord analytics. Plugins SEO. Intégrations réseaux sociaux. Popups newsletter. Bannières cookies. Frameworks de tests A/B.
Rien ne correspondait au silence de ses peintures.
Il m'a montré son idéal : "Un site web qui ressemble à entrer dans une galerie vide. Juste toi et le travail. Rien d'autre."
Ce Que J'ai Construit
L'Interface Admin
Radicalement épurée. Trois champs :
- Uploader image
- Entrer dimensions (cm)
- Entrer année
C'est tout. Appuyer sur publier.
Pas de catégories. Pas de tags. Pas de champs alt text. Pas de méta descriptions SEO. Le système auto-génère tout depuis le nom de fichier et les données EXIF.
Le Frontend
- Affichage image plein écran (pas d'en-tête, pas de pied de page, pas de chrome de navigation)
- Touches fléchées pour naviguer (précédent/suivant)
- Escape pour fermer
- C'est toute l'interface
Pas d'analytics. Pas de tracking. Pas d'inscription newsletter. Le site web existe pour montrer des peintures. Point.
Les Décisions Techniques
Pourquoi Flask ?
Parce que c'est minimal. Un micro-framework Python qui ne fait rien sauf si vous lui demandez explicitement.
Pas de panneau admin intégré. Pas d'hypothèses ORM. Pas de magie "convention over configuration". Juste du routing HTTP et rendu de template.
Parfait pour ce projet.
Pourquoi SQLite ?
Base de données mono-fichier. Configuration zéro. Tourne sur un seul droplet sans dépendances externes.
Overkill ? Peut-être. Mais ça marche.
Pourquoi Pas de JavaScript ?
Les pages galerie sont HTML + CSS pur. Pas de frameworks. Pas de processus de build. Pas de dépendances npm.
Charge en moins d'1 seconde mondialement. Marche avec JavaScript désactivé. Accessible aux lecteurs d'écran par défaut.
Les Parties Difficiles
Résister au Feature Creep
Chaque semaine Hermann disait : "Et si on ajoutait [une fonctionnalité] ?"
- Et si les visiteurs pouvaient télécharger des images hi-res ?
- Et s'il y avait une inscription email ?
- Et si on trackait quelles peintures reçoivent le plus de vues ?
J'ai dit non à tout. Chaque ajout rendrait le site plus lourd. Mon travail était de protéger la simplicité, même du client.
Le Fardeau de Maintenance
Sur-mesure signifie pas d'équipe de sécurité. Je suis responsable de chaque mise à jour de dépendance, chaque patch CVE.
Flask et Pillow (bibliothèque d'images) nécessitent mises à jour manuelles. J'ai automatisé les scans de sécurité (Dependabot) mais le bouton "deploy update" est le mien à presser.
Si je me fais renverser par un bus, ce site s'éteint. C'est le trade-off.
Savoir Quand S'arrêter
La partie la plus difficile était de le shipper. Je continuais à trouver de minuscules détails à améliorer-ratios de compression d'images, alignement CSS grid, animations de chargement.
Hermann a finalement dit : "C'est fini. Shippe-le."
Alors je l'ai fait.
Où Ça en Est Maintenant
La galerie HS Schultz est live depuis octobre 2024. Zéro downtime. Zéro bugs rapportés. Charge vite. Marche partout.
Le feedback d'Hermann : "J'oublie que le site web est là. On dirait que les peintures... flottent juste."
C'est le plus grand compliment qu'un logiciel peut recevoir-être oublié.
Ce Que J'ai Appris
Le Bon Design c'est la Soustraction
Chaque fonctionnalité que je n'ai pas construite a rendu le site meilleur. Le minimalisme ne concerne pas l'esthétique-c'est la discipline.
Le Sur-mesure a un Coût
Ce projet ne génère pas de revenu pour moi. Hermann paie les coûts d'hébergement. C'est tout.
J'ai passé des semaines à construire quelque chose qui aurait pu être un template Squarespace. Le ROI est négatif en dollars, positif en leçons apprises.
Certains Projets Valent la Peine d'Être Faits Quand Même
Tout ne doit pas scaler ou générer du revenu. Parfois vous construisez des choses parce qu'elles devraient exister.
Cette galerie prouve que le luxe digital n'est pas la richesse de fonctionnalités-c'est la simplicité impitoyable.