Pourquoi construire son propre outil

La question qu'on pose toujours en premier : pourquoi ne pas utiliser Notion, Trello, Basecamp, ou l'une des dizaines de plateformes de gestion de projet qui existent ?

La réponse courte : parce qu'aucun de ces outils ne fait exactement ce dont j'ai besoin, de la façon dont j'en ai besoin, avec le niveau de contrôle que je veux sur mes données.

La réponse longue : parce que construire l'outil m'a appris autant que l'utiliser.

Notion est excellent pour l'organisation personnelle. C'est un outil générique, pensé pour être flexible. Résultat : il faut passer du temps à le configurer, à maintenir sa structure, à expliquer à chaque nouveau prestataire ou client comment naviguer dans l'espace partagé. La flexibilité devient une charge de maintenance.

Les données hébergées sur une plateforme tierce m'appartiennent jusqu'à ce qu'elles ne m'appartiennent plus (changement de CGU, fermeture du service, problème de confidentialité). Sur mes projets clients, les documents partagés peuvent contenir des informations sensibles : devis, accès provisoires, documents contractuels. Je veux contrôler où ça réside.

Ce que Collab fait

Collab est une application web Laravel 13 / Livewire hébergée en privé. Voici ce qu'elle couvre :

Gestion de projets. Chaque projet a un espace dédié : nom, description, statut, date cible, client associé. Les projets peuvent être archivés sans être supprimés.

Partage sécurisé. Je peux inviter un client ou un prestataire sur un projet spécifique via un lien à usage limité. L'invité accède uniquement à l'espace du projet concerné, pas à l'ensemble de l'application.

Commentaires et fil de discussion. Chaque projet dispose d'un fil de commentaires. Plutôt que d'éparpiller les échanges entre email, WhatsApp et Slack, tout ce qui concerne le projet vit dans le projet.

Gestion de fichiers. Upload de fichiers directement dans l'espace projet. Maquettes, exports PDF, documents de référence : tout au même endroit, accessible par les personnes invitées.

Journal d'activité. Chaque action (ajout de commentaire, upload de fichier, changement de statut) est enregistrée avec son horodatage. C'est la traçabilité qui manque dans les échanges par email.

Les choix techniques

Laravel 13 + Livewire. Livewire permet des interactions dynamiques sans écrire de JavaScript côté client : les composants sont reactifs, les mises à jour de l'interface se font via des requêtes serveur légères. Pour une application interne de cette taille, c'est le bon compromis entre interactivité et simplicité.

Authentification native Laravel. Pas de package tiers pour la gestion des utilisateurs et des sessions. Le système d'authentification de Laravel, configuré proprement, fait très bien le travail.

Stockage local. Les fichiers uploadés sont stockés sur le serveur, dans un répertoire hors du webroot, accessible via des routes protégées. Pas de dépendance à S3 ou à un service de stockage cloud pour une utilisation à cette échelle.

Ce que ça m'a appris

Construire Collab a été formateur sur plusieurs points que je n'aurais pas couverts autrement.

La gestion des permissions fine : qui voit quoi, qui peut faire quoi, comment on s'assure qu'un utilisateur invité ne peut pas accéder à un projet auquel il n'a pas été convié. Les policies Laravel permettent d'exprimer ça proprement, mais il faut les concevoir avec soin dès le début.

Livewire en conditions réelles : les composants imbriqués, la gestion de l'état, les événements entre composants. C'est différent de la théorie des tutoriels.

La conception d'une interface pour des utilisateurs non techniques. Mes clients ne sont pas des développeurs. L'interface doit être immédiatement compréhensible, sans formation préalable.

Ce que Collab n'est pas

Ce n'est pas un produit SaaS. Ce n'est pas un outil que je commercialise. C'est un outil interne, fait main, que j'adapte en fonction de l'évolution de mon activité.

Si un jour les besoins grandissent au point qu'un outil commercial devient plus pertinent, je ferai ce choix. Pour l'instant, Collab fait exactement ce que je lui demande, et je le modifie quand mes besoins changent. C'est une liberté que peu d'outils du marché peuvent offrir.