Le récit — Chapitre 05
Le cas en détail.
L'enjeu pour Codemaster
Voici ce qui se passe sur le web pour n'importe quel développeur ou créateur de contenu qui doit optimiser des images : il existe des centaines d'outils, et aucun ne fait vraiment le job. Les uns sont gratuits mais limitent à dix fichiers, exigent un compte sur un service publicitaire et n'expliquent pas où partent les images uploadées. Les autres sont des lignes de commande qui demandent d'installer libvips, de comprendre les options, de gérer les batchs à la main. Et quand on cherche un outil sérieux pour optimiser le poids de son site sans sacrifier la qualité, on tombe sur des comparateurs sans avis tranchés.
L'agence Codemaster avait besoin de cet outil pour elle-même. Plutôt que de payer un service externe ou bricoler des scripts en interne, on a décidé d'en faire un SaaS public — bien fait, transparent, simple — et de le commercialiser en parallèle. PixShrink est donc à la fois notre propre outil quotidien et un produit ouvert au monde. Et comme on est notre propre client, on a livré exactement ce qu'un développeur ou un e-commerçant attend vraiment : convertir une image en WebP en moins de cinq secondes, télécharger immédiatement, comprendre ce qui se passe, payer un abonnement raisonnable si on en a besoin tous les jours, ne plus jamais y penser sinon.
L'enjeu derrière ce projet va au-delà de l'outil lui-même : c'est la démonstration concrète qu'on sait construire un produit numérique complet. Pas une landing page, pas une démo : un service qui encaisse des paiements, qui gère ses comptes utilisateurs, qui supporte la charge, qui communique avec ses clients. La même technique exacte qu'on utiliserait pour livrer un SaaS à un client qui nous le confierait.
Ce qu'on a livré
Un convertisseur d'images réellement rapide — qui ne fait pas perdre une seconde à l'utilisateur
Pour un utilisateur qui veut optimiser un dossier de trente photos pour son site, le critère numéro un n'est pas le prix ni la jolie interface : c'est le temps que ça lui prend. Si l'outil met dix secondes par image, il abandonne au bout de la cinquième. S'il est obligé de télécharger chaque image une par une, il rage. S'il doit choisir entre qualité et poids sans visualiser le résultat, il ne sait pas où placer le curseur.
On a construit PixShrink autour du moteur de conversion le plus rapide disponible dans le monde Python : libvips, un projet open-source utilisé par Wikipedia et de gros acteurs du e-commerce, qui traite les images en streaming sans charger l'intégralité du fichier en mémoire. Là où une lib classique met quatre à cinq secondes par image, libvips traite la même image en moins d'une seconde — et plusieurs images en parallèle quand il y en a beaucoup.
- Conversion en moins d'une seconde pour la plupart des images — un visiteur qui upload une photo de produit en JPEG de 4 Mo récupère sa version WebP en moins de temps qu'il ne lui en faut pour rédiger le tweet qu'il préparait. Sur des batchs de plusieurs fichiers, la conversion s'exécute en parallèle pour utiliser tous les cœurs du serveur. Concrètement : trente images converties en cinq à dix secondes, là où la concurrence en demande une à deux minutes.
- Quatre formats de sortie au choix : WebP, AVIF, JPEG et PNG — chacun avec ses cas d'usage : WebP pour le web moderne (gain de poids massif, compatible Safari/Chrome/Firefox), AVIF pour la pointe (compression encore plus agressive pour qui peut se permettre), JPEG pour la compatibilité absolue, PNG pour la transparence. L'utilisateur choisit, ou laisse PixShrink suggérer le format optimal selon le poids visé.
- Curseur de qualité de 1 à 100 avec aperçu mental immédiat — on a documenté précisément ce que veut dire chaque tranche de qualité, pour qu'un utilisateur sache ce qu'il choisit sans devoir tester quinze fois. Qualité 80 = sweet spot pour une photo web, 60 = miniature, 95 = quasi-loseless pour de l'archive.
- Redimensionnement intégré avec largeur maximale — la majorité des images uploadées sur le web font 4000 pixels de large pour s'afficher en 800 pixels. PixShrink resize avant de compresser : on récupère une image qui pèse cinq fois moins lourd, sans intervention manuelle.
- Téléchargement en un clic, ZIP automatique pour les batchs — pas de "redirige-toi vers une page de pub", pas de "valide ton email pour télécharger". Le fichier converti tombe dans le dossier de téléchargement, point. Quand il y a plusieurs images, on les regroupe dans un ZIP nommé proprement.
Ce que ça change pour l'utilisateur professionnel : optimiser les images d'un site, c'est maintenant une affaire de deux minutes au lieu d'une matinée. Et c'est exactement ce qu'on voulait — un outil qu'on prend, on utilise, on referme, sans réfléchir.
Une page d'accueil qui explique en cinq secondes ce que fait l'outil — et qui fait essayer immédiatement
Sur le marché des outils en ligne, l'utilisateur a déjà choisi son outil en trente secondes. Si la page d'accueil tergiverse, s'il faut scroller pour comprendre, s'il faut s'inscrire avant de tester, il est déjà parti chez le concurrent. Et le SEO autour de "convertir image en WebP" est saturé de pages génériques toutes pareilles, qui se ressemblent toutes.
On a livré une page d'accueil qui pose un cadre éditorial fort et qui démarque PixShrink dès le premier coup d'œil : un design typographique soigné (deux polices d'affichage Bricolage Grotesque + Hanken Grotesk, palette papier et encre qui évoque un magazine de design plus qu'un outil SaaS générique), un message clair en hero — « Tes images, exactement comme tu les veux » — et un bouton qui ouvre directement le convertisseur, sans inscription préalable.
- Tester avant de s'inscrire — n'importe qui peut convertir cinq images par semaine sans créer de compte. C'est le minimum pour vérifier que l'outil fait ce qu'il promet. Si le résultat convient, le visiteur s'inscrit pour avoir plus. S'il ne convient pas, on n'a pas perdu son temps avec une inscription inutile.
- Une promesse claire et chiffrée dès le hero — pas un slogan vague sur la qualité. Un chiffre, un format, une comparaison concrète : "réduire le poids d'une photo de 4 Mo à 200 ko sans perte visible". Le visiteur sait en trois secondes ce qu'il vient chercher et s'il peut l'obtenir ici.
- Une démonstration visuelle avant/après — pas un slogan "qualité préservée", mais des comparaisons côte à côte de la même image en JPEG 4 Mo et en WebP 250 ko. Le visiteur juge par lui-même. Honnête et imparable.
- Une mise en avant explicite de la confidentialité — les images uploadées sont stockées sur nos serveurs européens, automatiquement supprimées au bout de quatorze jours, et jamais réutilisées pour entraîner quoi que ce soit. C'est marqué noir sur blanc, pas caché dans des CGU de 80 pages.
- Un design éditorial qui sort du moule SaaS — la palette papier-encre, les typographies travaillées, les détails de mise en page : tout est calibré pour qu'on reconnaisse PixShrink en une seconde dans une liste d'onglets ouverts. Dans un marché où tous les outils ressemblent à du Bootstrap recopié, c'est un signal fort de qualité.
Un espace personnel avec compte sécurisé et historique des conversions
Pour un utilisateur qui se sert de PixShrink toutes les semaines, le grand confort, c'est de retrouver ses conversions passées. Ne pas avoir à re-uploader. Pouvoir comparer ce qu'on a déjà fait. Savoir combien on a converti d'images ce mois-ci. C'est ce qui transforme un outil ponctuel en outil qu'on garde.
On a livré un espace personnel — qu'on a baptisé l'atelier — qui réunit en une seule page le formulaire de conversion, l'historique des derniers travaux, les statistiques d'utilisation et les paramètres de compte. L'inscription se fait par e-mail classique avec un mot de passe sécurisé, ou en un clic via Google si on préfère ne pas créer un nouveau mot de passe à retenir.
- Inscription en cinq secondes par e-mail ou via Google — pas de questionnaire interminable, pas de validation par téléphone. On entre son e-mail, on choisit un mot de passe, on est dedans. Ou on clique sur "Continuer avec Google" et on est dedans encore plus vite. L'OAuth Google est implémenté à la main, sans dépendance externe douteuse — on garde la maîtrise complète des données utilisateurs.
- Historique des conversions sur quatorze jours — toutes les images converties sont conservées et téléchargeables pendant deux semaines. Plus besoin de retrouver le fichier original dans les téléchargements de la veille : il est dans l'atelier, prêt à être récupéré. Au bout de quatorze jours, suppression automatique pour respecter la confidentialité et libérer l'espace serveur.
- Compteur de quotas en temps réel — le visiteur voit instantanément combien d'images il a converties cette semaine et combien il lui en reste avant d'atteindre la limite de son palier. Pas de mauvaise surprise au moment de l'upload, pas de message d'erreur cryptique : juste un compteur honnête.
- Vérification d'e-mail intégrée pour limiter les comptes-jetables — un lien envoyé après l'inscription pour confirmer l'adresse. Pas obligatoire pour utiliser l'outil, mais nécessaire pour souscrire un abonnement payant. Filtre naturellement les inscriptions de robots ou de comptes temporaires.
- Récupération de mot de passe en deux clics — un lien envoyé par e-mail, un nouveau mot de passe en une minute. Pas de question secrète ridicule, pas de support à contacter.
Un abonnement Stripe complet — paiement carte, prélèvement, gestion automatique
Pour qu'un SaaS marche, il faut que l'utilisateur puisse passer du gratuit au payant sans friction. S'il faut "contacter le commercial pour avoir un devis", c'est mort. S'il faut payer un an d'avance, c'est mort. S'il faut envoyer un IBAN par e-mail, c'est mort. Le SaaS qui réussit est celui où on entre sa carte bancaire en trente secondes et où on est en service premium dans la minute.
On a câblé PixShrink avec Stripe, la référence mondiale du paiement en ligne : trois paliers d'abonnement (gratuit, intermédiaire à 5 € par mois, premium à 14 € par mois), payables au mois ou à l'année avec deux mois offerts si on choisit l'engagement annuel. Tout est géré directement dans l'application : souscription, changement de palier, annulation, remboursement, factures téléchargeables.
- Trois paliers calibrés pour trois usages différents — le palier gratuit (cinq conversions par semaine) sert à tester et à dépanner. Le palier intermédiaire (cinquante conversions par semaine, formats avancés AVIF, batchs, redimensionnement) couvre l'usage régulier d'un créateur de contenu. Le palier premium (illimité, taille de fichier sans plafond, support prioritaire) couvre l'usage intensif d'un développeur ou d'une agence.
- Paiement carte ou prélèvement en quelques secondes — l'interface de paiement Stripe Checkout gère carte bancaire, Apple Pay, Google Pay, prélèvement SEPA. L'utilisateur choisit son moyen préféré, valide, et son palier est actif dans la foulée. Pas de validation manuelle, pas de délai d'attente.
- Gestion totale par l'utilisateur depuis son compte — changer de palier (upgrade ou downgrade), modifier la carte bancaire, télécharger une facture, annuler l'abonnement : tout se fait en un clic depuis l'atelier. Aucune intervention humaine de notre côté n'est nécessaire pour les opérations courantes. C'est ce qui permet à un SaaS de tourner avec une petite équipe sans saturer le support.
- Facturation automatique avec PDF téléchargeables — chaque mois, une facture est générée par Stripe avec les mentions légales en règle (TVA, raison sociale, numéro de facture séquentiel). L'utilisateur peut la télécharger pour sa compta. Aucune saisie manuelle de notre part.
- Webhooks idempotents pour rejouer en cas de panne réseau — quand Stripe nous notifie d'un paiement ou d'un changement d'abonnement, notre système est capable de traiter le même événement plusieurs fois sans créer de doublons ni perdre une transaction. C'est ce qui garantit qu'aucun paiement ne passe à la trappe, même en cas d'incident réseau.
Ce que ça construit dans la durée : un SaaS qui peut grossir sans nous obliger à embaucher un comptable et un commercial dès le premier client payant. Le modèle économique tourne tout seul, on garde le temps pour améliorer l'outil.
Un back-office staff complet pour piloter le SaaS au quotidien
Pour faire vivre un SaaS, il faut voir ce qui se passe : combien de personnes s'inscrivent, combien convertissent, combien payent, combien quittent. Il faut pouvoir aider un client qui a un problème — voir sa situation, l'aider à débloquer un paiement, lui répondre vite. Il faut suivre la santé technique : les erreurs, les conversions qui plantent, les e-mails qui ne partent pas. Sans ces outils internes, un SaaS finit par tourner à l'aveugle et par perdre des clients sans comprendre pourquoi.
On a livré un back-office staff complet, accessible uniquement aux administrateurs de PixShrink, qui regroupe en une dizaine de sections tout ce qu'il faut pour piloter le service au quotidien : tableau de bord chiffré, listing des utilisateurs avec leur palier et leur historique, listing des abonnements et des factures, listing des conversions effectuées, gestion des messages de contact, suivi des e-mails envoyés, historique des conversations du chat support, et même une fonctionnalité de simulation utilisateur pour reproduire un bug du point de vue exact d'un client.
- Tableau de bord chiffré pour suivre la croissance — nombre d'inscrits, nombre d'utilisateurs actifs sur les sept derniers jours, nombre d'abonnés payants par palier, nombre de conversions effectuées, revenu mensuel récurrent. Les chiffres qui comptent vraiment pour savoir si le produit avance, regroupés sur une seule page.
- Listing utilisateurs filtrable et triable — chercher un utilisateur par e-mail, voir son palier, son dernier login, son historique de paiement, ses conversions récentes. Indispensable pour répondre à un ticket support en trente secondes au lieu de chercher dans dix outils différents.
- Historique complet des conversions effectuées — voir en temps réel quelles images sont en train d'être converties, avec quel format, par quel utilisateur, en combien de temps. Précieux pour détecter une vague de bugs sur un format particulier ou un utilisateur qui sature l'infrastructure.
- Simulation utilisateur intégrée — un administrateur peut, en un clic, naviguer sur le site comme s'il était un client donné, pour reproduire exactement son bug ou son blocage. Plus besoin de demander au client d'envoyer des captures d'écran ou de lire un rapport d'erreur cryptique : on voit ce qu'il voit. Le tout en gardant nos droits d'admin pour intervenir directement.
- Historique des e-mails envoyés avec statut de livraison — chaque e-mail envoyé par PixShrink (confirmation d'inscription, reçu de paiement, alerte sécurité) est journalisé. Quand un client dit "je n'ai pas reçu l'e-mail", on peut vérifier en trois secondes s'il a été envoyé, s'il est arrivé, s'il a été ouvert.
L'image que ça construit : PixShrink n'est pas un projet de week-end posé en ligne. C'est une machine de production qui se pilote, qui se mesure, qui s'optimise. Et c'est aussi le modèle qu'on déploie pour les clients qui nous confient leur SaaS — la même rigueur, le même outillage, la même qualité.
Un chat de support intégré pour parler aux utilisateurs sans outil tiers
Pour un utilisateur qui paie un abonnement, la question "comment je contacte le support en cas de problème" doit avoir une réponse en deux secondes. Pas un formulaire qui répond sous 48 heures. Pas un chatbot qui boucle. Un humain joignable, qui voit déjà son compte, son palier, ses conversions récentes.
On a livré un système de chat interne — pas un widget Intercom à 200 € par mois, pas un Crisp branchouillé à la va-vite — un vrai chat user-à-admin codé sur mesure, avec polling intelligent pour les notifications en temps réel sans imposer une architecture WebSocket complexe. L'utilisateur ouvre la bulle de chat, écrit son message, l'administrateur le reçoit immédiatement avec tout le contexte du compte.
- Bulle de chat accessible depuis toute l'application pour les paliers payants — un utilisateur en palier intermédiaire ou premium voit la bulle en bas à droite, peu importe où il est sur le site. Il clique, il écrit, c'est parti. Pas de redirection vers une page de contact, pas de formulaire à remplir.
- Historique conservé entre les sessions — l'utilisateur retrouve sa conversation précédente quand il revient. Pas besoin de re-expliquer son problème à chaque ouverture. L'administrateur a tout le fil pour suivre l'évolution.
- Notifications par e-mail des deux côtés — quand le client envoie un message, l'admin reçoit une notification e-mail pour pouvoir répondre même hors session. Quand l'admin répond, le client reçoit également une notification pour ne pas rater la réponse.
- Contexte client visible à l'admin dans le back-office — l'administrateur qui ouvre une conversation voit immédiatement le palier du client, son historique de paiement, ses dernières conversions, ses précédents messages. Il a tout pour comprendre le problème en trente secondes.
- Zéro dépendance externe, donc zéro abonnement mensuel récurrent — pas de coût de licence, pas de risque de fuite de données vers un tiers, pas de panne de service quand le prestataire externe est en maintenance.
Une infrastructure technique solide pour tenir la charge et la sécurité
Pour qu'un SaaS soit viable sur la durée, il y a tout un travail invisible qui se passe sous la surface : protéger contre les robots qui essaient de saturer le service, contre les attaques qui essaient de faire fetcher des fichiers internes, contre les comptes-jetables qui consomment du quota sans valeur. Et il faut que tout ça tourne en restant rapide, sans hoquets, sans pannes.
PixShrink est livré avec un arsenal défensif sérieux qui le rend prêt pour la production réelle — pas pour une démo de week-end.
- Limitation de fréquence sur toutes les actions sensibles — un attaquant qui essaye de bruteforcer un login, de spammer le formulaire de contact, ou de soumettre cent paiements à la suite, est bloqué automatiquement après quelques tentatives. Le service reste disponible pour les vrais utilisateurs même sous attaque.
- Protection anti-spam invisible sur les formulaires publics — pas un captcha pénible qui fait galérer l'utilisateur. Une protection silencieuse qui détecte les robots et les laisse de côté sans déranger les humains.
- Validation stricte des images fetchées par URL — quand un utilisateur PixShrink soumet une URL d'image à convertir (utile pour optimiser une image déjà en ligne sans la télécharger d'abord), on vérifie en plusieurs étapes que le fichier reçu est bien une image et qu'il ne pointe pas vers un service interne. Ce détail apparemment mineur évite une classe entière d'attaques connues sous le nom de SSRF.
- Suppression automatique des fichiers au bout de quatorze jours — aucune image n'est conservée éternellement. Une tâche de nettoyage tourne quotidiennement pour purger les fichiers expirés. Bénéfice double : on respecte la vie privée des utilisateurs, et on garde nos coûts de stockage sous contrôle.
- Journalisation structurée de tous les événements importants — chaque conversion, chaque connexion, chaque erreur est enregistrée dans des fichiers de logs datés, par module fonctionnel, ce qui permet de diagnostiquer un incident en minutes et pas en heures.
- Headers de sécurité HTTP modernes — protection contre les attaques d'injection de contenu (CSP), forçage du HTTPS, restriction des cadres iframe. Le navigateur du visiteur joue un rôle actif dans sa propre sécurité.
- E-mails envoyés via un service spécialisé (SendGrid) pour fiabilité maximale — pas de SMTP bricolé qui finit en spam. Tous les e-mails partent via un opérateur reconnu, avec gestion des bounces et suivi des livraisons.
Un site optimisé pour le référencement Google dès le premier jour
Pour qu'un SaaS B2C trouve son public sans dépenser des fortunes en publicité, il faut qu'il se positionne sur les requêtes que ses utilisateurs cibles tapent dans Google. « Convertir image en WebP », « compresser PNG en ligne », « réduire poids photo sans perte » — autant de portes d'entrée gratuites qu'on peut conquérir avec un site bien construit.
On a livré une optimisation SEO sérieuse dès le lancement : balises méta dynamiques, données structurées schema.org pour qualifier le service auprès de Google, sitemap XML qui liste toutes les pages, fichier robots.txt propre, contenu rédactionnel sur chaque page d'atterrissage. Pas un travail post-launch baclé, mais une SEO pensée dès la conception du produit.
- Page d'accueil et pages de tarification optimisées sur les requêtes cibles — chaque page d'atterrissage a son propre titre Google, sa propre description, ses propres mots-clés. Quelqu'un qui tape « convertir image en AVIF » peut tomber directement sur la page qui explique cette fonctionnalité.
- Données structurées schema.org pour qualifier PixShrink comme application logicielle — Google sait que PixShrink est un SoftwareApplication, avec son prix, sa note, ses fonctionnalités. C'est ce qui permet d'apparaître avec une fiche enrichie dans les résultats de recherche.
- Sitemap XML mis à jour automatiquement — toutes les pages publiques sont listées et soumises à Google via le sitemap. Quand on ajoute une nouvelle page d'atterrissage ou un nouvel article, elle est indexée plus rapidement.
- Open Graph et Twitter Cards pour les partages sociaux — quand quelqu'un partage un lien PixShrink sur Twitter, LinkedIn ou WhatsApp, l'aperçu qui s'affiche est une carte propre avec image, titre et description. Pas un lien moche sans aperçu.
- Performances frontend maîtrisées — assets minifiés, fonts chargées intelligemment, cache navigateur configuré. Le site se charge vite, ce qui plaît à Google et à ses visiteurs.
Ce qu'il faut retenir
PixShrink est plus qu'un outil de conversion d'images : c'est la démonstration vivante de ce que Codemaster sait construire. Un SaaS complet, du convertisseur ultra-rapide à l'abonnement Stripe en passant par le back-office staff, le chat support, l'OAuth Google, la sécurité production, et la SEO pensée dès le départ.
Ce projet condense en un seul produit toutes les briques techniques qu'on déploie pour les clients qui nous confient leur SaaS : authentification, paiement récurrent, espace utilisateur, espace admin, support client, infrastructure défensive, observabilité, référencement. Chaque brique a été pensée pour tenir en production réelle — pas pour faire joli sur une démo.
Si vous avez une idée de SaaS et que vous cherchez une équipe capable de la livrer de A à Z sans dépendre de plug-ins WordPress ou de services tiers opaques, PixShrink est notre carte de visite la plus parlante. Le code, l'architecture, l'expérience utilisateur, le modèle économique : tout ce que vous voyez sur pixshrink.app, on peut le construire pour vous, adapté à votre métier, à votre cible, à votre identité.