Per creare una grafica per i social, una presentazione o un volantino non serve più installare una suite professionale sul PC. Canva ha contribuito più di ogni altro servizio a rendere normale questo modello: lanciato nel 2013, dichiara oggi oltre 220 milioni di utenti attivi mensili e più di 30 miliardi di progetti creati. Doory prova a riprendere la stessa idea, ma con una differenza sostanziale: il codice è disponibile su GitHub, tutte le funzioni dichiarate dal progetto sono gratuite e l’intera applicazione può girare su un proprio server locale (o remoto).
Il progetto si presenta apertamente come alternativa open source a Canva: Doory non è un semplice editor grafico che funziona nel browser, ma una vera applicazione Web con frontend, API, database, collaborazione in tempo reale, gestione degli account e possibilità di archiviare localmente file e progetti.
Doory si usa direttamente dal browser, anche senza registrazione
La modalità più semplice per capire che cosa offre consiste nell’aprire doory.art e cliccare sul pulsante Start designing.
L’editor funziona nel browser e consente di partire da una pagina vuota oppure da uno dei modelli disponibili: si possono realizzare poster, immagini per i social, storie, inviti, curriculum, miniature per YouTube, presentazioni e biglietti da visita.
Un aspetto interessante riguarda l’accesso: non è obbligatorio creare un account. I progetti di un utente guest rimangono nel browser e sul dispositivo dal quale sono realizzati. La registrazione serve invece quando si vogliono salvare i documenti sul server, condividerli, utilizzare i brand kit e sfruttare le funzioni collaborative.
Ogni elemento inserito nella pagina diventa un oggetto modificabile: testi, forme, fotografie, linee, icone e altri componenti possono essere spostati, ridimensionati e organizzati su livelli. Sono disponibili gruppi, blocco degli elementi, visibilità, riordinamento, guide di allineamento, snapping e righelli.

Non solo immagini statiche: animazioni, audio, video e PDF
Gli autori di Doory sottolineano la disponibilità di 27 animazioni di ingresso e uscita, 12 effetti di enfasi e 16 transizioni tra pagine. A queste si aggiungono una timeline, una libreria audio con 24 loop musicali e 88 effetti sonori distribuiti con licenza CC0, registrazione della voce, taglio delle tracce e dissolvenze.
L’esportazione copre PNG, JPG, SVG, PDF, MP4, WebM e GIF animate; è prevista anche la generazione di PDF destinati alla stampa, con abbondanze e indicatori di taglio.
Una parte dell’elaborazione avviene nel browser; per alcune operazioni lato server, come specifiche modalità di produzione del PDF, l’immagine Docker può ricorrere a Chromium headless (browser senza interfaccia grafica).
C’è anche una modalità Presentazione con note per il relatore, temporizzazione, avanzamento automatico, puntatore laser e seconda finestra per il relatore.
Doory, insomma, non punta soltanto alla produzione di grafiche quadrate per Instagram; cerca di coprire una fetta più ampia degli utilizzi che hanno trasformato Canva da semplice editor grafico a strumento di comunicazione visuale.

Il motore grafico è Fabric.js, mentre React gestisce l’interfaccia
Doory sfrutta React 19 con TypeScript e Vite; il file package.json attuale indica React 19.2, TypeScript 5.9 e Vite 7.3 tra le dipendenze dichiarate. Lo stato applicativo passa anche attraverso Zustand, mentre TanStack React Query gestisce la parte legata alle richieste e alla sincronizzazione dei dati provenienti dal backend.
Il cuore dell’editor grafico è Fabric.js: fornisce un modello a oggetti sopra HTML Canvas. Rettangoli, testi, immagini, tracciati e altri elementi non sono semplicemente pixel disegnati sullo schermo, ma entità manipolabili, serializzabili e riordinabili. La libreria offre inoltre conversione dello stato grafico in JSON o SVG, gestione delle selezioni, trasformazioni e viewport.
Nel frontend compaiono anche jsPDF per alcune operazioni sui documenti, gifenc per le GIF, mp4-muxer e webm-muxer per i contenitori video, QRCode per la generazione dei codici QR e onnxruntime-web. Quest’ultimo componente è particolarmente interessante perché permette di eseguire modelli ONNX direttamente nel browser.
Installare Doory in proprio con Docker Compose
Per chi vuole mantenere progetti e file all’interno della propria infrastruttura, la caratteristica più interessante è il self-hosting.
Il repository include Dockerfile e un file Docker Compose che prepara PostgreSQL, API Django, server realtime e frontend nginx. La porta pubblicata di default è la 8080.
La procedura consiste semplicemente nel rinominare .env.example in .env, generare una chiave DJANGO_SECRET_KEY sufficientemente lunga, impostare una password PostgreSQL e avviare lo stack con il comando docker compose up -d --build. Dopo il primo avvio si può creare il superuser Django per amministrare l’istanza.
Un’installazione nuova parte intenzionalmente piuttosto vuota: tramite i comandi di gestione Django si possono caricare le categorie, sincronizzare i font, installare i 10 template iniziali, importare gli elementi grafici, scaricare i modelli per la rimozione dello sfondo e predisporre la libreria audio.
Il catalogo degli elementi arriva a circa 25.000 risorse fra icone, emoji, illustrazioni, forme e grafiche e richiede, secondo le indicazioni del progetto, all’incirca 110-125 MB su disco.
Per i font Doory utilizza caratteri con licenze aperte provenienti da Fontsource tramite jsDelivr. La configurazione standard può sincronizzare le 100 famiglie più popolari, occupando circa 6 MB.
Attenzione alla pubblicazione su Internet
Se Doory dovesse essere raggiungibile pubblicamente, è consigliabile mettere davanti al container Web un reverse proxy con terminazione TLS. La configurazione predefinita pubblica infatti il servizio su 0.0.0.0:8080 e lascia disattivate le direttive SECURE_SSL_REDIRECT e SECURE_COOKIES per facilitare le prove su localhost.
Su un server reale conviene cambiare tali impostazioni, usare HTTPS e, quando il reverse proxy gira sulla stessa macchina, vincolare WEB_BIND a 127.0.0.1.
Occorre inoltre configurare correttamente i parametri SITE_URL, DJANGO_ALLOWED_HOSTS, CSRF_TRUSTED_ORIGINS e il numero di proxy che intervengono nella catena degli header X-Forwarded-For. Un’applicazione che ospita account, file caricati e link condivisi merita le stesse precauzioni di qualunque altro servizio Web esposto pubblicamente.
Una vera alternativa a Canva? Dipende da cosa si cerca
Canva è ormai un punto di riferimento di lungo corso e dispone di un’enorme raccolta di modelli e contenuti, applicazioni per più piattaforme, funzioni commerciali e una larga base di utenti. Doory parte con 10 template e una comunità ancora giovane: il confronto quantitativo non regge.
La proposta acquista invece molto più senso quando la priorità cambia. Un’azienda, una scuola, un’associazione o un professionista potrebbero preferire un editor Web controllabile internamente, senza pubblicità e senza funzioni separate dietro un piano Pro. I documenti degli utenti registrati rimangono sul server scelto dall’amministratore; quelli degli ospiti possono restare nel browser. È anche possibile modificare il codice e integrare il software nelle proprie procedure.
Doory usa la Attribution Assurance License, derivata dalla licenza BSD ma accompagnata da specifici obblighi di attribuzione. La redistribuzione e la modifica del software, anche per uso commerciale, sono ammesse; chi redistribuisce il programma deve però conservare licenza e file NOTICE, mostrando in modo evidente il riferimento richiesto.
La base tecnica è moderna e articolata: per chi cerca un editor grafico Web gratuito e self-hosted, Doory può rivelarsi già molto interessante e facile da adattare alle proprie specifiche esigenze.