Clone de Tumblr en Ruby on Rails
Alexis développe un clone personnel de Tumblr en Ruby on Rails via Cursor et Gemini 2.5 Pro, partant de zéro (sans environnement Ruby installé) jusqu'à obtenir un MVP fonctionnel avec interface publique et back-office d'administration en environ 1 heure.
À propos de cette session
Alexis commence par analyser Tumblr pour comprendre les fonctionnalités à reproduire, se concentrant sur l'aspect micro-blogging personnel plutôt que réseau social. Il utilise Claude en mode vocal pour spécifier le projet, demandant explicitement à l'IA de poser des questions pour affiner le cadrage.
Claude génère une spécification complète avec user stories, phases de développement et recommandations techniques. Alexis insiste sur l'importance de cette étape de cadrage avant d'utiliser les outils de vibe coding.
Dans Cursor, Alexis lance un projet en mode agent avec Gemini 2.5 Pro. Le premier défi survient immédiatement : l'absence d'environnement Ruby sur sa machine Ubuntu. L'agent guide l'installation complète (Ruby, RubyGems, Rails) en expliquant les bonnes pratiques système.
L'installation rencontre plusieurs obstacles : conflits de dépendances, problèmes de permissions, packages manquants. L'agent résout chaque problème en proposant les commandes appropriées et en expliquant les enjeux de sécurité.
Une fois l'environnement configuré, l'agent génère la structure Rails avec scaffolding, crée les modèles (Post, Tag), configure les migrations de base de données et implémente les contrôleurs. Le code suit les conventions Rails avec une séparation claire des responsabilités.
Le premier test révèle une erreur de routing. L'agent analyse l'erreur depuis les logs et corrige rapidement le problème. Le MVP fonctionne : timeline publique avec posts de test et interface d'administration basique.
Alexis teste la création de contenus (texte, images, citations) et découvre des bugs d'ergonomie : pas de gestion des tags multiples, images mal dimensionnées, retour utilisateur insuffisant après création. L'agent corrige progressivement ces problèmes.
La session se termine avec un prototype fonctionnel incluant une interface publique stylée "néo-brutaliste", un back-office d'administration, la gestion des types de posts multiples et un système de tags opérationnel.
Points clés
- Aspects techniques et méthodologiques*
- Le cadrage préalable avec un LLM dédié est indispensable avant d'utiliser les outils de vibe coding
- La spécification par phases permet un développement itératif plus maîtrisé
- Les frameworks opinionated comme Rails accélèrent le développement grâce au scaffolding automatique
- La gestion d'environnement de développement reste un point de friction majeur en vibe coding
- Limitations des outils découvertes*
- Cursor ne récupère pas automatiquement les erreurs serveur, nécessitant un copier-coller manuel
- Les limitations d'API (rate limiting) peuvent bloquer le développement à tout moment
- L'agent a tendance à enchaîner les phases sans laisser tester l'utilisateur
- Pas de prévisualisation intégrée comme dans Windsurf ou Bolt
- Bonnes pratiques identifiées*
- Commencer par un cadrage détaillé avec Claude avant d'utiliser Cursor
- Utiliser le mode agent plutôt que manuel pour des projets complets
- Éviter le mode "auto" pour garder le contrôle du modèle utilisé
- Accepter les modifications au fur et à mesure pour maintenir le contexte
- Problèmes récurrents du vibe coding*
- La première itération génère rarement un résultat parfaitement fonctionnel
- Les erreurs d'environnement sont complexes à déboguer sans compétences système
- L'utilisateur devient passif et perd la maîtrise du code généré
- Les bugs d'ergonomie nécessitent plusieurs itérations pour être résolus
- Insights sur l'architecture, sécurité, performance*
- Rails impose une structure MVC qui améliore la maintenabilité
- L'utilisation de migrations pour la base de données assure la traçabilité des modifications
- Les conventions Rails réduisent les erreurs architecturales
- SQLite convient pour un prototype personnel mais pose des questions de scalabilité
- Leçons sur la collaboration avec l'IA*
- L'IA excelle dans l'installation et configuration d'environnement complexe
- Elle suit les bonnes pratiques framework mieux qu'un développeur junior
- Le dialogue itératif permet d'améliorer progressivement le produit
- L'IA compense efficacement le manque de connaissances techniques spécifiques
- Réalités du vibe coding au-delà du marketing*
- Environ 30% du temps est consacré à l'installation et configuration d'environnement
- Les compétences en UX/Product restent indispensables pour guider les améliorations
- Le développeur garde un rôle de chef d'orchestre et testeur qualité
- La maîtrise des concepts informatiques généraux reste un avantage significatif
- Stratégies qui fonctionnent vraiment*
- Paralléliser le cadrage (Claude) et l'implémentation (Cursor) optimise le workflow
- Tester fréquemment et donner un feedback immédiat à l'agent améliore la qualité
- Utiliser les outils adaptés à chaque phase (spécification vs implémentation)
- Garder des attentes réalistes sur la qualité de la première itération