Doory is a browser-based graphic design editor positioned as a free, open-source alternative to Canva. Built with React 19, Fabric.js, Django 5, and PostgreSQL, it ships as a single Docker Compose stack you can run on your own server. The pitch is simple: every feature Canva gates behind Pro — background removal, video export, brand kits — Doory gives away. The feature list is legitimately deep for a solo-developer open-source project. You get layers, groups, masks, filters, curved text, snapping, rulers, multi-page designs, 27 enter/exit animations, 12 emphasis effects, 16 page transitions, audio mixing with a CC0 library, presenter mode with speaker notes, and real-time collaborative editing via Yjs with live cursors. Export covers PNG, JPG, SVG, PDF, MP4, WebM, and animated GIF. Background removal runs entirely in-browser. That is not a feature checkbox — it is a working design tool. The self-hosting story is clean. Three commands get you running: copy the env file, docker compose up, create a superuser. Seed scripts populate templates, fonts, icons, and audio. Configuration covers HTTPS, S3 storage, Google OAuth, and Unsplash/Pexels integration for stock photos. The architecture is straightforward — nginx fronts the app and proxies API and WebSocket traffic so the browser talks to one address. The honest gap is templates. Canva's moat is not its editor — it is the tens of thousands of professionally designed templates that let non-designers produce decent work in minutes. Doory ships ten. That is a starting point, not a library. For teams or individuals who design from scratch or build their own template sets, this does not matter. For the Canva user who picks a template and swaps text, it is a real limitation. The licensing choice is worth noting. Doory uses the Attribution Assurance License, which requires prominent credit to the author in the running application. This is not MIT or Apache. If you are building a white-label design tool or embedding this in a product where attribution is awkward, read the license carefully before committing. The technical foundation is solid and modern — React 19, TypeScript, Vite on the front end; Django 5, Channels, PostgreSQL on the back. Fabric.js handles canvas rendering, Yjs handles conflict-free replicated data types for collaboration, Zustand manages state. These are well-maintained libraries with active communities. The developer, Siam, has built something that would normally require a funded team. Doory does not need to beat Canva to be valuable. It needs to be good enough for the specific users Canva cannot serve: organizations that require data sovereignty, developers who want to embed a design editor, teams that refuse SaaS dependencies, and individuals who want a capable design tool without surveillance or upsells. For that audience, this is the most complete open-source option available right now.