Ingénierie logicielle : Un parcours humain avant tout
Nuxt UI vient de sortir sa version 4.
Cet article ne parle pas de technologie. C'est une histoire humaine. Vous pouvez continuer à lire.
Vous vous demandez peut-être pourquoi cet article existe. Pour moi, la release de Nuxt UI marque la fin d'un projet qui m'a occupé pendant des mois et m'a donné l'occasion de collaborer avec des personnes du monde entier.
Aujourd'hui, je souhaite partager ce voyage car j'en ai beaucoup parlé sur Twitter, mais à part avec les personnes avec qui j'ai collaboré, je n'ai pas partagé grand-chose.
Il y a quelques semaines, j'ai publie un article sur ma transition allant de l'écriture de code pour le simple plaisir d'écrire à l'utilisation de mes compétences pour créer des moments. Ce changement a radicalement affecté ma vision du développement logiciel, de mon travail et de mes objectifs.
Cette version en fait partie.
Alors, quand ce voyage a-t-il commencé ? Le 7 décembre 2024, j'ai tweeté :
Imagine, Nuxt UI but like Shadcn Vue 🫣
Au départ, ce n'était qu'une idée. Je tweet souvent pour tester l'intérêt et la réception.
Ce tweet a été vu plus de 18k fois et aimé 105 fois. Le signal était clair : les gens étaient intéressés. Étrangement, en dehors de ce tweet, je n'avais pas de plan concret ou de vision claire de ce que je voulais construire.
Alors pourquoi l'ai-je tweeté ?
Le Début
Revenons quelques années en arrière pour donner du contexte.
Depuis le premier jour, je suis un grand fan de Nuxt UI. Le premier jour était le 16 mai 2023. Étrangement, je me souviens clairement de ce que je faisais lorsque j'ai vu l'annonce sur Twitter : je quittais mon bureau, sur le pont traversant la Seine, sur le point de prendre le tram. Cela pourrait être ordinaire, mais je ne prends jamais le tram pour rentrer chez moi, je prends toujours le bus.
L'annonce ne m'a pas laissé indifférent. J'ai ressenti une petite d'excitation. Nuxt devenait plus qu'un simple framework. Nuxt a toujours été axé sur les détails et une expérience développeur marquée. S'ils pouvaient apporter ce même niveau à leur bibliothèque de composants, ils pouvaient conquérir les développeurs.
Au départ, ce n'était pas Nuxt UI mais NuxtLabs UI. Les composants avaient été extraits de Volta par l'équipe. Nous avons dû attendre la version 2.8.0 avant que NuxtLabs UI soit renommé en Nuxt UI.
Quelques mois plus tard, le 2 novembre 2023, ils ont annoncé Nuxt UI Pro. Incroyable, mais cela coûtait 199 $. À l'époque, j'étais encore étudiant et, honnêtement, avec tout l'amour que j'ai pour Nuxt, cela représentait beaucoup d'argent pour quelque chose que j'utilisais seulement comme loisir.
Dans la FAQ, ils mentionnaient que les étudiants pouvaient obtenir une réduction. Après avoir essayé les composants Pro de manière intensive, et sans pouvoir les déployer, j'ai contacté l'équipe pour cette réduction le 5 novembre 2023.
Un jour plus tard, Sébastien a répondu avec un code de réduction de 100 % pour me remercier de mes contributions à Nuxt Content, UnJS et Nuxt Studio. Nuxt UI Pro, gratuitement. Je n'y croyais pas. Merci, Sébastien ! Rien que d'y penser me fait sourire.
Revenons à fin 2024.
Le Besoin
Au cours des derniers mois, j'ai appris Laravel. Avec Laravel, j'ai découvert Inertia et je suis complètement tombé amoureux. Cet outil a changé ma façon de construire des applications.
Dans le même temps, j'ai commencé un emploi où j'avais la liberté de choisir les technologies. J'ai choisi Laravel, Inertia et Vue. Donc, pour mes projets personnels et professionnels, j'ai adopté cette stack.
Rien n'est parfait, et cette stack avait un inconvénient.
Nuxt UI n'était disponible que pour Nuxt et pas aussi personnalisable que je le voulais. C'était frustrant car j'avais appris à aimer les composants et l'expérience développeur qu'ils offraient. Il n'y avait rien de comparable pour Vue.
Mais ne sommes-nous pas des créateurs ? Si cela n'existe pas, pourquoi ne pas le créer ?
Cela m'a conduit à une idée. Shadcn devenait de facto la bibliothèque pour construire des applications React. Elle vient avec un magnifique système de design et un système de distribution intelligent. Les projets possèdent leurs composants, ce qui simplifie la personnalisation au niveau du projet. Cependant, l'expérience développeur lors de l'utilisation de ces composants est loin de l'expérience Nuxt UI.
Pourquoi ne pas créer une bibliothèque similaire à Shadcn pour Vue ? Un clone de Nuxt UI, distribué comme Shadcn, mais pour Vue et compatible avec Inertia. L'expérience développeur de Nuxt UI disponible pour chaque développeur Vue m'a donné des frissons en l'imaginant.
C'est ainsi que le tweet est né.
Avec cette idée en tête et un fort intérêt pour construire cette bibliothèque, je devais me lancer. Construire et maintenir une bibliothèque est un énorme travail, alors j'ai demandé sur Twitter si quelqu'un était intéressé à me rejoindre.
Cinq personnes ont répondu à l'appel, beaucoup plus que je ne l'avais prévu !
Un grand merci à a bei, David Pena, Enzo Notario, aussieboi, et Grygoriy Lyashenko de m'avoir rejoint dans cette aventure ! Si un jour vous venez à Paris, faites-moi signe !
J'avais un plan, une équipe, et nous étions prêts à construire.
Dans le même temps, Nuxt UI progressait vers la version 3. Deux semaines avant mon tweet, une pull request pour rendre Nuxt UI compatible avec Vue 3, créée par Daniel, a été fusionnée. Mais ce n'était toujours pas aussi personnalisable que je le souhaitais, et il n'y avait pas de prise en charge pour Inertia.
La Construction
Je n'étais pas sûr de la façon d'aborder cela. Je savais que je voulais créer une bibliothèque qui correspondait à l'expérience développeur de Nuxt UI, mais je ne voulais pas simplement la copier.
Ce n'était pas un fork direct de Nuxt UI. Régulièrement, je copiais des composants de Nuxt UI, les adaptais pour les rendre agnostiques à Nuxt, et parfois changeais leur comportement pour correspondre à mes préférences.
L'équipe a fait cela pour chaque composant, chaque composable, chaque fonction utilitaire, et même chaque thème. Nous avons également construit un site de documentation pour permettre aux utilisateurs de copier et coller facilement des extraits de code, avec des modifications de code automatiques si vous utilisiez Inertia ou simplement Vite, et des démos intégrées pour chaque composant.
Nous avons même construit un script bash pour automatiser le processus d'installation et un moyen d'installer uniquement les composants nécessaires avec leurs dépendances.
C'était absolument incroyable à construire et si satisfaisant d'avoir quelque chose de fonctionnel et utilisé dans des projets.
Par exemple, code.soubiran.dev a été construit avec cette bibliothèque. Même mon propre site web, celui sur lequel vous êtes actuellement, l'utilise également.
La Vérité
Le 14 avril 2025, une pull request pour ajouter la prise en charge d'Inertia a été acceptée et mergée.
Je devais me rendre à l'évidence : Nuxt UI devenait enfin ce que je voulais construire. La personnalisation n'était pas aussi bonne que de posséder les composants, mais c'était open source. Pourquoi ne pas soumettre quelques contributions ? Je connais chaque composant par cœur et j'avais déjà apporté des améliorations dans mon fork. Je devais juste les porter.
Alors je l'ai fait. Depuis le 1er décembre 2024, j'ai contribué dix-neuf fois.
Maintenir mon fork était honnêtement beaucoup de travail et largement plus que la valeur que j'étais capable d'ajouter. Parfois, il vaut mieux lâcher prise et se concentrer sur ce qui compte vraiment.
Je suis heureux du projet et de l'expérience prise. Ça m'a donné l'occasion d'apprendre en profondeur le code source de Nuxt UI et d'échanger avec l'équipe via des messages Twitter et des issues GitHub. Un aspect amusant de travailler avec une équipe mondiale : vous pouviez vous endormir après avoir envoyé un message et vous réveiller avec une nouvelle demande de tirage !
Maintenant, il est temps d'admettre : Vue UI est officiellement terminé.
- Site web : vue-ui.barbapapazes.dev
- Code : Vue UI Labs
Merci à toute l'équipe Nuxt, en particulier à Sébastien, Benjamin, et Hugo pour votre travail incroyable sur Nuxt UI. 🫶
Une image vaut mille mots, mais parfois mille mots expriment plus que tout. J'espère que cela vous inspirera à entreprendre votre propre voyage. N'oubliez pas : You don't need to be chosen, you can just do things.
De temps en temps, j'aime revenir sur mes articles précédents. J'aime prendre le temps de réfléchir au parcours que j'ai pris. Cela m'aide à apprécier chaque nouveau jour et chaque nouvelle personne que je rencontre en chemin.
Merci de me lire ! Je m'appelle Estéban, et j'adore écrire sur le développement web et le parcours humain qui l'entoure.
Je code depuis plusieurs années maintenant, et j'apprends encore de nouvelles choses chaque jour. J'aime partager mes connaissances avec les autres, car j'aurais aimé avoir accès à des ressources aussi claires et complètes lorsque j'ai commencé à apprendre la programmation.
Si vous avez des questions ou souhaitez discuter, n'hésitez pas à commenter ci-dessous ou à me contacter sur Bluesky, X, et LinkedIn.
J'espère que vous avez apprécié cet article et appris quelque chose de nouveau. N'hésitez pas à le partager avec vos amis ou sur les réseaux sociaux, et laissez un commentaire ou une réaction ci-dessous—cela me ferait très plaisir ! Si vous souhaitez soutenir mon travail, vous pouvez me sponsoriser sur GitHub !
Discussions
Ajouter un commentaire
Vous devez être connecté pour accéder à cette fonctionnalité.