Il y a quelques années, si on m'avait demandé pourquoi je voulais créer un site d'outils en ligne, j'aurais probablement trouvé la question un peu étrange.
Car j'avais l'impression qu'il en existait déjà des dizaines sur Internet.
Compression d'images, conversion de PDF, mise en forme de JSON, génération de QR code, conversion de couleurs… Pour presque chaque besoin, on peut trouver des dizaines, voire des centaines de sites. Beaucoup de ces outils existent depuis plus de dix ans et comptent d'importants groupes d'utilisateurs.
Alors pourquoi en créer un nouveau ?
Honnêtement, au début, je ne le savais pas moi-même.
Au départ, c'était juste pour résoudre mes propres problèmes
De nombreux programmeurs ont une habitude.
Face à un problème, leur premier réflexe n'est pas de télécharger un logiciel, mais d'ouvrir un navigateur et de chercher un outil en ligne.
Parfois, il faut compresser une image.
Parfois, il faut formater un morceau de JSON.
Parfois, il faut générer un UUID.
D'autres fois, on veut juste recadrer une image, convertir un format, ou générer un QR code.
Ces besoins ne sont pas complexes, mais ils se présentent tous les jours.
J'ai donc commencé à collecter différents sites d'outils.
Ma liste de favoris s'allongeait de plus en plus.
Jusqu'au jour où j'ai remarqué un phénomène intéressant.
Presqu'aucun de ces sites ne me semblait vraiment satisfaisant.
Certains sites avaient plus de publicités que de contenu.
D'autres exigeaient une connexion pour pouvoir être utilisés.
Des sites étaient très lents, même pour une fonction simple, il fallait attendre longtemps.
Certains sites téléversaient les fichiers sur leur serveur, et je ne savais pas combien de temps mes données seraient conservées.
D'autres encore avaient une interface figée depuis dix ans, totalement inutilisable sur mobile.
Alors j'ai commencé à réfléchir :
Et si je recréais ces petits outils que j'utilise souvent moi-même ?
Au début, ce n'était qu'un projet d'entraînement.
Sans plan commercial, sans feuille de route produit.
Juste l'envie de créer un site que j'aurais plaisir à utiliser au quotidien.
Écrire du code n'est pas si difficile ; la difficulté réside dans les détails
Une fois que je me suis réellement mis au travail, j'ai découvert que le développement des fonctionnalités était en réalité la partie la plus simple.
Ce qui prenait vraiment du temps, ce sont les détails que les utilisateurs ne remarquent presque jamais.
Par exemple, la vitesse de chargement des pages.
Beaucoup pensent peut-être qu'un outil de recadrage d'image peut bien se permettre d'être un peu lent à s'ouvrir.
Mais je ne partage pas cet avis.
Si un outil nécessite trois ou quatre secondes d'attente, je préfère le réoptimiser plutôt que de faire patienter l'utilisateur une seule fois de plus.
Je me suis donc lancé dans l'étude approfondie de l'optimisation des performances.
Comment implémenter le chargement paresseux (lazy loading) des images ?
Comment découper le code JavaScript ?
Quelles ressources doivent être mises en cache ?
Quelles ressources nécessitent une mise en cache à long terme ?
Quelles requêtes impactent le rendu initial de l'écran (First Contentful Paint) ?
Quel code est en réalité inutile à charger ?
Pour gagner quelques points dans les métriques de performance, je testais et retéstais la page.
Parfois, en modifiant juste une configuration.
Parfois, en réduisant une ressource de quelques dizaines de Ko.
Bien que les utilisateurs ne ressentent probablement pas ces changements, l'accumulation de toutes ces optimisations finit par rendre l'ensemble du site plus rapide et plus fluide.
Créer un outil est plus complexe qu'on ne l'imagine
Au début, je pensais que faire un outil consistait simplement à coder la fonctionnalité.
J'ai ensuite compris qu'un site destiné à durer nécessitait énormément de travail invisible.
Par exemple, l'internationalisation.
Si l'on ne fait qu'un site en chinois, le développement est relativement simple.
Mais si l'on espère que des personnes de nombreux pays puissent l'utiliser, cela implique plus que la simple traduction des textes.
Il faut aussi penser à la mise en page pour différentes langues.
Aux habitudes d'utilisation des utilisateurs de différents pays.
À la manière dont les moteurs de recherche identifient les pages dans différentes langues.
À la conception des URL.
À l'optimisation des titres et descriptions de pages pour chaque langue.
Ces aspects ne semblent pas être des fonctionnalités à proprement parler.
Mais ils déterminent si le site peut véritablement servir un plus large public.
Le SEO, plus difficile que je ne l'imaginais
Auparavant, je pensais qu'il suffisait de bien construire un site pour que les moteurs de recherche l'indexent naturellement.
J'ai ensuite compris que la réalité était bien plus complexe.
Je me suis mis à étudier les sitemaps.
Les données structurées (schema markup).
Les balises titre des pages.
Les Meta Description.
La balise Canonical.
Le protocole Open Graph.
La mise en cache des pages.
Les Core Web Vitals.
Pourquoi Google et Bing indexent une page et en ignorent une autre.
Parfois, un tout petit problème pouvait me prendre des heures, voire des jours, à résoudre.
C'est aussi l'un des plus grands apprentissages de ce projet.
Il m'a permis de commencer à véritablement comprendre qu'un site web n'est pas seulement une question de pages et de code.
Il y a aussi de nombreuses règles cachées en arrière-plan.
Pourquoi rester gratuit ?
Beaucoup de mes amis m'ont demandé si ces outils deviendront payants un jour.
Pour l'instant, ma réponse est non.
Au moins pour la grande majorité des outils de base, je souhaite qu'ils restent gratuits.
Parce que je suis moi-même un utilisateur de ces outils.
Je sais que lorsque vous voulez juste compresser une image, vous n'avez pas envie de voir une fenêtre pop-up vous demandant de payer.
Que lorsque vous voulez juste convertir un fichier, vous n'avez pas non plus envie de devoir d'abord créer un compte.
Un outil doit résoudre des problèmes, pas en créer de nouveaux (des obstacles).
Bien sûr, un site nécessite des serveurs, de la maintenance et un développement continu.
À l'avenir, certains modèles économiques pourraient émerger, comme la publicité ou des fonctionnalités premium.
Mais je souhaite que cela n'affecte pas l'expérience utilisateur de base pour l'utilisateur lambda.
Le nom ToolAct
Beaucoup de personnes, en voyant le nom ToolAct pour la première fois, demandent ce qu'il signifie.
En réalité, il n'y a pas d'histoire particulièrement complexe derrière.
Je souhaitais que ce site ne soit pas seulement une collection d'outils.
L'idée principale est que les outils aident réellement les gens à passer à l'action (Act).
Un outil en soi n'a pas de valeur.
Ce qui a de la valeur, c'est le temps qu'il vous fait gagner et la rapidité avec laquelle il vous permet d'accomplir vos tâches.
Ainsi, plutôt que de collectionner de nombreux outils, je préfère que vous ouvriez le site, l'utilisiez, le fermiez, et poursuiviez votre travail.
L'outil doit rester en arrière-plan, et non devenir le protagoniste.
Créer un site, c'est aussi apprendre
Beaucoup de gens, en voyant un site, pensent qu'il est terminé.
Mais pour un développeur, ce n'est qu'un début.
Chaque fois que j'ajoute une fonctionnalité, j'apprends quelque chose de nouveau.
Système de messagerie.
Authentification et connexion.
Stratégie de mise en cache.
Internationalisation.
Accessibilité (a11y).
Compatibilité navigateurs.
Optimisation pour les moteurs de recherche (SEO).
Sécurité.
Optimisation des performances.
Ces connaissances, beaucoup n'existaient auparavant pour moi que dans la documentation.
C'est en le faisant soi-même qu'on réalise le nombre de détails qu'il y a derrière.
C'est aussi grâce à ce projet que j'ai commencé à prêter davantage attention à ce dont les utilisateurs ont réellement besoin, plutôt qu'à ce que *je* pense qu'ils ont besoin.
La suite
ToolAct a encore beaucoup à améliorer.
Il y aura plus d'outils.
Il y aura plus de langues.
La vitesse sera continuellement optimisée.
L'expérience utilisateur sera sans cesse améliorée.
Je ne m'attends pas à ce qu'il ait des dizaines de milliers d'utilisateurs du jour au lendemain.
J'espère plutôt que chaque personne qui y viendra pourra résoudre rapidement son problème, et aura envie de revenir la prochaine fois.
Si un jour, lorsque vous aurez besoin d'un outil en ligne, le nom ToolAct vous vient à l'esprit.
Alors, à mon sens, ce projet aura déjà réussi à moitié.
Enfin
Sur Internet, de nouveaux produits apparaissent chaque jour, et de nombreux sites disparaissent discrètement.
Je ne sais pas jusqu'où ToolAct ira.
Mais pour l'instant, j'ai toujours le plaisir d'écrire du code, d'optimiser ces détails que personne d'autre ne remarquera peut-être, et d'ajouter ces petits outils vraiment utiles.
Si vous lisez cet article, alors bienvenue sur ToolAct.
J'espère qu'un des outils ici présents pourra, un jour, vous faire gagner quelques minutes et résoudre un petit problème.
Si tel est le cas, alors la décision d'avoir lancé ce site en valait la peine.