10 ans de Locize
Dix ans.
À pareille époque en 2016, nous lancions locize.com. À l'époque, c'était un petit backend pour i18next qui faisait une seule chose : livrer des traductions aux applications en production sans redéploiement. Aujourd'hui, il fait toujours cela, et bien d'autres choses encore.
D'où nous sommes partis
L'histoire commence en réalité cinq ans plus tôt, en 2011. Nous avions besoin d'une bibliothèque i18n qui fonctionne à la fois sur Node.js et dans le navigateur, et rien de ce qui existait ne convenait vraiment. i18next a donc été écrit. Il a grandi plus vite que nous ne l'attendions. Une communauté s'est formée autour, des plugins sont apparus pour tous les frameworks qui comptaient, et nous avons continué à affiner le cœur de la bibliothèque.
C'était la partie facile.
La partie difficile s'est avérée être tout ce qui entoure le runtime : comment les traductions sont effectivement écrites, relues, versionnées, livrées, modifiées en place, mises en file d'attente pour l'assistance IA/MT, auditées, exportées, ré-importées, maintenues en phase avec le code. La bibliothèque ne pouvait aller que jusqu'à un certain point. Le workflow était une bête à part entière.
En 2016, nous étions confrontés à ce problème de workflow depuis assez longtemps pour savoir ce que nous voulions. La localisation continue. La livraison des traductions par CDN. Un véritable éditeur pour les traducteurs. saveMissing, pour que les développeurs n'aient plus jamais à recopier des chaînes dans un tableur. Un éditeur in-context qui s'ouvre par-dessus l'application en cours d'exécution, pour qu'un traducteur puisse cliquer sur une phrase et la modifier là où elle vit. C'est ainsi qu'est né Locize.
Un billet antérieur sur ce blog, écrit dans les toutes premières semaines, en raconte le cadrage d'origine si cela vous intéresse : Day zero, how all began.
Ce que nous avons construit
Dix ans plus tard, le produit est plus vaste que son premier croquis, mais la colonne vertébrale est la même.
- Une gestion des traductions avec les workflows dont les vraies équipes ont besoin (versions, historique, permissions, segments, statuts).
- Un CDN qui sert les traductions publiées dans le monde entier, sur les infrastructures Standard (BunnyCDN) et Pro (AWS CloudFront).
- Le support natif d'une longue liste de formats i18n, pas seulement le JSON d'i18next.
- Une traduction par IA qui s'appuie sur votre langue de référence, votre terminologie et votre contexte. Pas un module annexe, un workflow à part entière.
- Un éditeur in-context qui vit dans le paquet
locizeet s'intègre désormais à vue-i18n aux côtés d'i18next. - Une collection grandissante de recettes pour frameworks : Next.js, React Router v7, Nuxt 4, Astro, ainsi que les guides plus anciens pour React, Vue, Remix, et le reste.
- Swiss-made, conforme au RGPD par défaut.
Derrière tout cela, la chose plus profonde : un workflow où les développeurs livrent du code et les traducteurs livrent des traductions, sans que l'un bloque l'autre. C'était l'objectif en 2016, et ça l'est toujours.
Ce que ça représente vraiment
Faire vivre un petit SaaS pendant dix ans, ce n'est pas une ligne droite.
Certaines semaines, vous publiez une version majeure et un client vous écrit pour vous dire que ça lui a fait sa semaine. D'autres semaines, vous passez trois jours à traquer un bug d'hydratation qui s'avère être une simple majuscule N manquante dans un nom de classe (histoire vraie, corrigée dans locize@4.0.24). Certains trimestres, le churn baisse tout seul, sans qu'on sache pourquoi. D'autres trimestres, vous livrez la feature la plus propre de l'année et les métriques ne bougent pas.
L'ordinateur portable ne reste pas à la maison pendant les vacances. Le téléphone n'est jamais loin. Vous avez toujours un pas d'avance sur quelque chose, et un pas de retard sur autre chose.
En échange, vous obtenez une dose déraisonnable de flexibilité. Vous décidez de ce que vous construisez, du moment où vous le construisez et des compromis que vous acceptez. Vous rendez des comptes aux clients, au code et aux personnes avec qui vous travaillez, et pas à grand-chose d'autre. Pour nous, ce marché en vaut la peine depuis dix ans.
Un gâteau venu de la maison
Une petite histoire pour conclure.
Pour marquer l'anniversaire, l'épouse d'un cofondateur (qui tient le blog culinaire frangipani.food) a préparé un gâteau à la pistache fourré d'une chantilly mascarpone-fleur de sureau. La recette est de son côté en allemand et en italien si vous voulez la réaliser vous-même. La fleur de sureau doit infuser dans la crème pendant 24 heures avant d'être fouettée avec le mascarpone, mais la note florale qui ressort ensuite vaut largement la planification.
Elle a également écrit, de son côté, quelques lignes sur ce que c'est que de vivre avec quelqu'un qui dirige une petite entreprise : l'ordinateur portable qui voyage partout, le téléphone qui ne s'arrête jamais, et la liberté qui vient malgré tout avec. Cela vaut la peine d'être lu sur le billet d'origine.
Dix années comme celles-ci ne se construisent pas par les fondateurs seuls. Les familles qui supportent les ordinateurs portables et les soirées tardives. L'équipe. La communauté i18next. Les clients qui nous sont restés fidèles à travers chaque itération. Les mainteneurs open source qui ont bâti l'écosystème sur lequel Locize repose. Vous tous.
Et la suite
Il n'y a pas d'annonce de roadmap dans ce billet. Les dix prochaines années iront là où elles iront. L'IA continue de réécrire le contrat entre ce que font les logiciels et les personnes, les guerres de frameworks JavaScript continuent de rebattre les cartes, et des problèmes de la forme d'i18next continueront de surgir là où nous ne les attendons pas. Nous continuerons à les rencontrer là où ils se présentent.
Si vous utilisez Locize depuis une partie de cette décennie, merci. Si vous lisez ces lignes pour la première fois, bienvenue.
Même workflow. Même plateforme Swiss-made. Mêmes cofondateurs. Dix années de plus à venir.
— L'équipe Locize