Présentation
Doory est un éditeur de design complet qui s’exécute entièrement dans le navigateur. Il permet de créer des affiches, des publications sociales, des présentations, des cartes de visite ou des vidéos à partir de modèles ou d’une page vierge, puis d’exporter les résultats aux formats PNG, JPG, SVG, PDF, MP4, WebM ou GIF. Toutes les fonctionnalités sont gratuites, aucune inscription n’est requise et aucune filigrane n’est appliquée.
Architecture et déploiement
Le projet repose sur une architecture containerisée. Un seul docker‑compose up lance quatre services : l’application frontale, l’API back‑end, la base de données et le module de collaboration en temps réel. Cette approche garantit que chaque composant tourne dans son propre conteneur, simplifiant la mise à l’échelle et la maintenance. Le dépôt fournit deux fichiers docker-compose.yml (développement et production) qui décrivent les images Docker, les ports exposés et les volumes persistants pour la base de données.
services:
frontend:
image: doory/frontend:latest
ports:
- "3000:80"
depends_on:
- api
api:
image: doory/api:latest
environment:
- DATABASE_URL=postgres://doory:password@db/doory
ports:
- "5000:5000"
db:
image: postgres:13
volumes:
- db_data:/var/lib/postgresql/data
collab:
image: doory/collab:latest
ports:
- "4000:4000"
volumes:
db_data:Le front utilise les capacités du navigateur pour exécuter le modèle de suppression d’arrière‑plan, évitant ainsi tout transfert d’image vers un serveur externe. Les recherches d’images libres de droits s’appuient sur les API Unsplash ou Pexels, nécessitant uniquement la clé d’accès fournie par l’utilisateur.
Fonctionnalités techniques
Doory implémente un système de calques complet : chaque objet peut être renommé, verrouillé, masqué, groupé ou réordonné par glisser‑déposer. Les outils de guidage (règles, aimants, alignement) facilitent le positionnement précis. Les effets incluent 27 animations d’entrée/sortie, 12 effets d’accentuation et 16 transitions de page, tous contrôlables sur une timeline. Un moteur audio intégré propose 24 boucles musicales et 88 effets sonores CC0, ainsi que la possibilité d’enregistrer et de couper des voix off.
Le module de collaboration en temps réel synchronise les curseurs et les modifications via WebSocket, offrant des commentaires, un historique de versions et des partages de lien avec options de lecture‑seule, commentaire ou édition. Les designs restent stockés localement dans le navigateur tant que l’utilisateur ne crée pas de compte, ce qui garantit la confidentialité des données.
Analyse des limites et perspectives
Bien que le code source soit complet, le README ne précise pas les langages ou frameworks exacts (Node.js, React, etc.), ce qui complique l’audit de sécurité pour les organisations sensibles. L’absence de chiffrement TLS intégré au niveau du conteneur impose de configurer un reverse‑proxy HTTPS en production. De plus, la suppression d’arrière‑plan s’appuie sur un modèle exécuté côté client ; la performance dépend donc de la puissance du GPU du navigateur, ce qui peut être limité sur des machines anciennes.
Enfin, le modèle de licence open source (MIT) autorise toute modification, mais aucune gouvernance communautaire officielle n’est mentionnée, ce qui peut freiner les contributions externes et la pérennité du projet. Malgré ces réserves, Doory constitue une alternative viable pour les équipes cherchant à éviter les coûts récurrents de Canva tout en conservant le contrôle total de leurs données.