Un projet de bibliothèque codé en vibe coding avec Claude Code
(balajmarius.com)- Exemple de projet personnel utilisant Claude Code pour classer et visualiser automatiquement environ 500 livres
- Un problème jusque-là insoluble, car les scanners ISBN ou Goodreads ne reconnaissaient pas les éditions roumaines, résolu grâce à l’API Vision d’OpenAI et à des scripts générés avec Claude
- Après une extraction des métadonnées avec une précision de 90 %, le reste a été corrigé manuellement, puis les couvertures ont été récupérées automatiquement via Open Library et SerpAPI
- Mise en place d’une interaction proche d’une vraie bibliothèque grâce à des animations basées sur le défilement avec Framer Motion et à une épaisseur des livres calculée à partir du nombre de pages
- Le projet illustre un mode de collaboration où l’IA exécute, tandis que l’utilisateur garde la main sur le jugement esthétique et les choix, en soulignant que « le coût d’exécution baisse, mais le goût reste une affaire humaine »
Découvrir le résultat final : Bookshelf - https://balajmarius.com/bookshelf
Vue d’ensemble du projet
- Avec environ 500 livres possédés mais sans système de suivi, l’auteur a construit un système de classement et de visualisation automatiques à l’aide d’outils IA
- Au lieu d’un simple tableur, il a automatisé les étapes d’exécution via Claude Code, ce qui lui a permis d’achever un projet personnel repoussé depuis longtemps
- L’enjeu central du projet n’était pas tant la perfection technique que la suppression des goulots d’étranglement de l’exécution
Identification du problème
- Les applications de scan ISBN et Goodreads ne reconnaissaient pas les éditions roumaines ni certaines publications rares, rendant les données incomplètes
- Des données incomplètes ajoutaient davantage de confusion et faisaient interrompre le projet à répétition
- Ce qu’il fallait n’était pas une application parfaite, mais une architecture capable de tolérer l’imperfection
Collecte et traitement des données
- Les données ont été construites à partir de 470 photos prises des couvertures et des tranches des livres
- Un script écrit par Claude envoie chaque image à l’API Vision d’OpenAI pour extraire auteur, titre et éditeur, puis enregistre le résultat dans des fichiers
JSON - Le système a atteint une précision d’environ 90 % ; les erreurs restantes provenaient de problèmes d’éclairage, de détérioration ou de résolution
- Les 10 % restants ont été corrigés manuellement, puis le même pipeline a été relancé automatiquement à chaque ajout de nouveau livre
Amélioration des images de couverture
- Les couvertures ont d’abord été récupérées via l’API Open Library, mais environ la moitié étaient de mauvaise qualité ou incorrectes
- Claude a ajouté un système de notation de qualité et de signalement des erreurs et, en cas d’échec, a basculé vers une recherche Google Images via SerpAPI
- Sur environ 460 livres, seuls 10 ont nécessité une correction manuelle, ce qui a permis de conserver une bonne efficacité d’automatisation
Implémentation de l’interface de bibliothèque
- Au lieu d’une simple grille de couvertures, le projet reproduit un rendu visuel centré sur les tranches de livres, comme une vraie bibliothèque
- Claude s’est chargé de l’extraction des couleurs (color quantization) et du calcul de la couleur de texte offrant le bon contraste
- Le projet utilise aussi les données de nombre de pages d’Open Library pour refléter l’épaisseur des livres, avec une légère variation ajoutée pour plus de réalisme
- Le résultat donne une texture visuelle proche d’une bibliothèque réelle
Animations et interactions
- Des animations basées sur le défilement ont été ajoutées avec Framer Motion, faisant incliner les tranches lors du scroll
- Au départ, des saccades apparaissaient à cause des mises à jour d’état dans React, mais elles ont été corrigées avec des motion values et des animations spring
- Une fois corrigé, le mouvement est devenu fluide, et le faible coût des expérimentations a permis de multiplier les itérations
Suppression des fonctionnalités inutiles
- Une fonction de défilement infini avait été ajoutée, mais des incohérences de hauteur de conteneur et des erreurs de scroll dégradaient l’expérience utilisateur
- Même si cela fonctionnait techniquement, la fonctionnalité n’était pas nécessaire et a été supprimée
- Le projet souligne que supprimer du “code qui fonctionne mais n’est pas utile” reste un rôle humain
Adaptation mobile et vue en pile
- Comme le défilement horizontal était peu pratique sur mobile, une vue en pile verticale a été ajoutée
- Claude a analysé le code existant pour réutiliser le timing des animations, l’extraction des couleurs et la gestion de la transparence au scroll
- Sans explication supplémentaire, il a généré un nouveau composant complet, montrant ainsi les capacités de compréhension et de recomposition du code par l’IA
Rôle humain et conclusion
- Même si Claude a écrit tout le code, l’utilisateur a pris les décisions suivantes
- accepter une précision de 90 %
- corriger manuellement 10 couvertures
- choisir un design centré sur les tranches
- supprimer les fonctionnalités inutiles
- valider la qualité sensible des animations
- Le résultat final est une bibliothèque web classant et visualisant automatiquement 460 livres
- Le projet montre un modèle de collaboration où l’IA prend en charge l’exécution et l’humain le goût et le jugement
- En conclusion, « le coût d’exécution continue de baisser, mais le goût reste une affaire humaine »
Aucun commentaire pour le moment.