Une seule commande de déploiement suffit désormais pour faire tourner l’interface clé d’un géant du design sur son propre serveur privé. Le projet open source Doory en a publié l’implémentation intégrale. De la mise en page vectorielle aux animations temporelles en passant par la collaboration multi-utilisateur en temps réel, l’ensemble des fonctionnalités essentielles répond présent. La démonstration hébergée officielle ne requiert aucune inscription : il suffit d’ouvrir l’adresse pour concevoir immédiatement dans le navigateur.
Le tableau comparatif officiel fait preuve d’une franchise désarmante. Alors que la plateforme commerciale Canva revendique des dizaines de millions de ressources sous licence, Doory n’est livré par défaut qu’avec 10 modèles de base. L’auteur précise sans détour dans la documentation que les autres modèles devront être conçus et ajoutés par les utilisateurs eux-mêmes. Avec seulement 6 commits dans son dépôt Git et l’appui de Claude Opus 5.5, le projet a bâti l’ossature interactive d’une application moderne en un temps record.
L’open source a transformé la couche fonctionnelle des outils de création graphique en composants banalisés et accessibles à tous. Pourtant, le socle d’actifs sous droits d’auteur qui fait la fortune des acteurs établis ne se duplique pas par de simples lignes de code. Des catalogues de modèles méthodiquement structurés et des licences de polices commerciales forment une ligne de démarcation économique infranchissable.
Une ligne de commande pour démarrer une coquille sans contenu
Le déploiement auto-hébergé brille par sa concision. L’utilisateur n’a besoin que de dupliquer les fichiers de configuration, de renseigner les clés d’environnement de base et de lancer docker compose up -d --build pour initialiser le service. L’ensemble de la pile se lie par défaut au port 8080 de la machine hôte, l’interface frontend et les API backend étant distribuées via des conteneurs intégrés.
Le choix d’un port d’écoute unique simplifie la topologie réseau, mais impose en production de configurer soi-même un proxy inverse et les certificats TLS nécessaires. Le conteneur web intègre un proxy nginx qui achemine les requêtes d’API classiques et le trafic WebSocket dédié au travail collaboratif vers un backend Django 5. L’architecture regroupe PostgreSQL, une instance optionnelle de Redis et un stockage objet compatible S3. Si cette orchestration mono-machine s’avère parfaite pour des expérimentations internes, l’absence de planification multi-nœuds distribuée empêche d’encaisser d’emblée des charges de travail à très forte concurrence.
À son premier démarrage, l’instance s’apparente à une coquille vide. Le système n’intégrant aucune ressource préchargée, l’administrateur doit injecter les données manuellement via des commandes de gestion. L’exécution de seed_gallery injecte les catégories par défaut, tandis que sync_fonts --popular 100 synchronise 100 polices de caractères open source populaires. Une centaine de typographies libres suffit à couvrir la composition de texte basique ; pour la production de supports de marque professionnels, les équipes devront malgré tout acquérir des licences de polices commerciales onéreuses.
Figure : L’éditeur complet dans le navigateur, intégrant la gestion des calques et les outils typographiques dans le panneau latéral droit. Source : README du dépôt Doory.
Modèles et collaboration dans le navigateur : aucun secret dans la pile technique
Les choix technologiques de Doory s’alignent étroitement sur les standards du web contemporain. L’application cliente est développée avec React 19 et TypeScript. Le rendu du canevas repose sur Fabric.js, tandis que l’état global est coordonné par Zustand. Fabric.js encapsule la sélection d’objets, les matrices de transformation et le tracé vectoriel. S’appuyer sur une bibliothèque graphique mature abaisse considérablement la barrière à l’entrée : un développeur indépendant n’a plus à concevoir un pipeline de rendu bas niveau en partant de zéro.
La collaboration en temps réel est confiée au tandem formé par Yjs et Django Channels. Yjs applique des types de données répliqués sans conflit (CRDT) pour résoudre l’édition concurrente et le suivi des curseurs directement au sein du client local. Django Channels se charge de propager les mises à jour via WebSockets, évitant les verrous complexes et la contention côté serveur. Déporter le calcul d’état à la périphérie allège considérablement la charge du backend. En revanche, sur des canevas denses et complexes, la mémoire vive des machines modestes peut saturer rapidement.
Le moteur d’animation met à disposition 27 préréglages d’entrée et de sortie, 12 animations d’accentuation et 16 transitions de scène. Une chronologie dédiée prend en charge l’orchestration multipiste, permettant d’exporter des affiches statiques directement aux formats MP4, WebM ou GIF animé. Si ces capacités dynamiques enrichissent considérablement l’outil, le calcul soutenu des images clés sollicite en permanence le thread principal du navigateur.
Le détourage automatique d’images (suppression d’arrière-plan) s’appuie sur un modèle d’apprentissage automatique exécuté localement dans le navigateur. L’inférence sur le poste client évite l’envoi d’images haute résolution vers des serveurs distants, protégeant ainsi la vie privée des utilisateurs et épargnant des coûts de calcul au serveur hôte, tout en transférant l’effort de calcul sur les ressources matérielles de la machine locale.
Figure : Chaque élément du canevas dispose d’un calque dédié, permettant de le renommer, le verrouiller, le masquer et le réordonner par glisser-déposer. Source : README du dépôt Doory.
25 000 icônes ne comblent pas le fossé du droit d’auteur
Les ressources sonores et visuelles constituent la chair des logiciels de création. Doory intègre 24 boucles musicales de fond et 88 effets sonores, tous publiés sous licence CC0. Disposer d’éléments audio libres de droits convient parfaitement pour concevoir des vidéos de présentation ou des maquettes rapides. En revanche, lorsqu’un clip commercial doit véhiculer une identité de marque précise, le recours à des bibliothèques musicales payantes reste indispensable.
Le catalogue visuel préinstallé réunit environ 25 000 icônes, émojis et illustrations vectorielles. Ces dizaines de milliers de symboles génériques répondent aux besoins de schémas et d’illustrations informatives. Pourtant, dans le cadre d’une communication d’entreprise exigeante, un assemblage d’éléments gratuits disparates suffit rarement à forger un langage visuel cohérent. Pour la recherche de photographies d’archives, l’utilisateur est invité à fournir ses propres clés d’API Unsplash ou Pexels. Ce modèle protège le créateur du projet des risques de droits et de bande passante, mais reporte les limites de requêtes et les coûts d’achat directement sur l’utilisateur final.
La documentation officielle indique en toute transparence que l’application ne contient que 10 modèles à l’installation. Dix exemples suffisent largement à valider le comportement du moteur de rendu. La véritable valeur des plateformes commerciales réside toutefois dans leurs collections méthodiquement classées par secteurs d’activité, styles et cas d’usage réels, une profondeur que dix maquettes de base ne sauraient offrir. Un modèle condense le savoir-faire de graphistes chevronnés et des standards industriels au sein d’un fichier. Le code s’écrit en quelques jours, mais bâtir des bibliothèques de contenus industrialisées demande des années de maturation à des équipes de création dédiées.
Figure : Seulement 10 modèles inclus d’origine ; les immenses bibliothèques industrielles restent le pré carré exclusif des plateformes commerciales. Source : README du dépôt Doory.
Des aspérités d’usage qui séparent le clone du produit abouti
Sur le papier, l’éventail fonctionnel du projet semble complet. À l’usage, plusieurs détails d’ergonomie trahissent cependant un temps de rodage insuffisant. Selon les proportions de la fenêtre, les libellés du menu de formes subissent des retours à la ligne inélégants et débordent de leur cadre. Les boutons de la barre supérieure sont excessivement rapprochés, et certains panneaux d’outils ne se referment pas automatiquement lorsqu’ils perdent le focus. Négliger ces cas limites d’interaction engendre des frictions répétées qui fatiguent l’utilisateur au fil des sessions.
Le retour d’état de l’interface souffre également d’incohérences logiques. Deux indicateurs contradictoires s’affichent simultanément au-dessus de la zone de travail : l’un affirme que les modifications sont sauvegardées, l’autre signale qu’elles sont conservées localement dans le navigateur. L’absence d’état centralisé sème le doute quant à la persistance effective des données. De plus, les boutons d’exportation et de partage se trouvent disséminés sur des barres latérales opposées, tandis que des invitations récurrentes à créer un compte perturbent la concentration créative.
Le dépôt Git n’affiche que 6 commits, le journal de développement mentionnant explicitement la contribution régulière de Claude Opus 5.5. Les modèles de langage permettent de dresser l’architecture d’un projet à une vitesse spectaculaire. Néanmoins, garantir la robustesse multiplateforme et peaufiner les moindres nuances d’ergonomie exige toujours le travail méticuleux d’ingénieurs expérimentés. De surcroît, le projet a adopté l’Attribution Assurance License, qui impose de conserver visiblement la mention de paternité pour toute redistribution commerciale, freinant ainsi les dérives de marque blanche et relevant le coût d’une réexploitation commerciale directe.
L’open source conçoit les rouages, mais n’achète pas un écosystème
Le débat suscité par Doory met en lumière la dynamique évolutive des outils créatifs. Sous l’angle du développement logiciel pur, concevoir un éditeur graphique riche dans un navigateur ne relève plus de l’exploit technologique. Fabric.js uniformise le canevas, Yjs désamorce les conflits concurrents et React structure les composants. L’outil logiciel en lui-même s’impose progressivement comme un bien commun de l’écosystème open source.
Le véritable fossé défensif des plateformes commerciales n’a pourtant jamais tenu à leurs seules lignes de code. La valeur de Canva découle d’un cercle économique vertueux : les créateurs touchent des redevances régulières, tandis que les entreprises clientes bénéficient de ressources sécurisées, certifiées conformes et assorties de garanties contre les litiges de contrefaçon. Une solution auto-hébergée offre une surface de travail épurée. Mais cet immense maillage planétaire d’engagements contractuels et d’économie créative ne peut être livré dans un fichier docker-compose.
Avec la démocratisation des assistants de programmation par IA, d’autres prototypes ouverts du même ordre continueront d’émerger. Pour les organisations exigeant une stricte souveraineté sur leurs données, Doory constitue une remarquable architecture de référence. Pour l’immense majorité des utilisateurs en quête de millions de modèles prêts à l’emploi, les plateformes établies conservent un avantage concurrentiel écrasant. L’open source a réussi la première étape de la démocratisation des outils ; l’édification de l’écosystème, elle, ne fait que commencer.
Liens de référence :
- Dépôt officiel et documentation de Doory
- Discussion sur la communauté Hacker News
- Démonstration interactive en ligne de Doory