Open-Sourcing Canva: Doory Delivers the Editor Engine, but Only 10 Templates

Open-Sourcing Canva: Doory Delivers the Editor Engine, but Only 10 Templates

Open SourceCanvaFrontendBusiness Models

Sources:HN + web research

With a single deployment command, the core interface of a design tech giant runs cleanly on a private server. Open-source project Doory has released a full-stack design editor. From complex vector layout and keyframe animation to real-time multiplayer collaboration, every essential editor feature is accounted for. The official hosted demo requires no registration; click the link and start designing immediately.

The project’s comparison table is refreshingly candid. While commercial platforms like Canva boast tens of millions of curated assets, Doory ships with just 10 starter templates out of the box. The author notes plainly in the documentation that users must supply and design the rest themselves. Across a git repository with only 6 commits, built with the assistance of Claude Opus 5.5, the project assembled modern interactive scaffolding in record time.

Open source has turned the functional core of design software into an accessible commodity. Yet the proprietary asset foundations that monetize commercial design empires cannot simply be replicated through code. Systematic copyrighted templates and commercial typography licenses form an unmistakably rigid business boundary.

One Command to Spin Up an Empty Shell

On-premise deployment is remarkably lean. Users only need to clone the configuration files, fill in standard environment variables, and run docker compose up -d --build to bring the entire stack online. By default, the service binds cleanly to port 8080 on the host machine. Both frontend client assets and backend API endpoints are routed through bundled containers.

Occupying a single default port simplifies network topology, but it also means production deployments require operators to manage their own reverse proxies, TLS termination, and certificates. An internal web container runs an nginx proxy, routing standard REST requests and WebSocket traffic for real-time collaboration back to a Django 5 backend. The service lineup includes PostgreSQL, optional Redis, and S3-compatible object storage. While single-host container orchestration excels for lightweight internal testing, the lack of distributed multi-node clustering makes handling high-concurrency enterprise workloads unviable out of the box.

The newly deployed instance is an empty shell. It ships without preloaded assets, requiring administrators to seed data manually through management commands. Running seed_gallery injects default design categories, while executing sync_fonts --popular 100 pulls down 100 popular open-source typefaces. While a hundred open-source fonts easily support basic typography, teams creating production marketing collateral must still license and purchase expensive commercial type foundries themselves.

Doory Editor Interface Figure: A complete design editor running in the browser, featuring layer management and typography tools in the right panel. Source: Doory repository README.

In-Browser Models and Collaboration: No Secrets Left in the Tech Stack

Doory’s technology stack aligns closely with modern mainstream web practices. The client application is built with React 19 and TypeScript. The central canvas renderer is powered by Fabric.js, with global state coordinated by Zustand. Fabric.js encapsulates complex object hit testing, transformation matrices, and vector rendering. Standing on the shoulders of mature graphics libraries drastically lowers the development barrier; a solo engineer no longer needs to architect a low-level rendering pipeline from scratch.

Real-time collaboration combines Yjs with Django Channels. Yjs implements Conflict-free Replicated Data Types (CRDTs) to handle concurrent edits and multiplayer cursor tracking locally on each client. Django Channels forwards synchronization payloads over WebSockets, entirely sidestepping complex server-side locks and mutex contention. Pushing state calculations to the client edge lightens backend overhead. However, on dense and complex canvases, memory consumption on lower-spec client machines can climb rapidly.

The animation engine is packed with 27 entrance/exit presets, 12 emphasis effects, and 16 transition styles. A dedicated timeline supports multi-layer track orchestration, allowing static posters to export directly as MP4, WebM, or animated GIF formats. These dynamic capabilities expand the tool beyond print into motion graphics, though calculating dense keyframes creates sustained pressure on the browser’s main thread.

Image background removal runs via a client-side machine learning model directly in the browser, eliminating the need to transmit high-resolution user photos to an external server. In-browser background removal protects user privacy and spares self-hosters heavy GPU server bills, but it shifts the computational burden directly onto the user’s local CPU and GPU.

Layer Panel and Context Menu Figure: Every canvas element retains an independent layer entry, supporting renaming, locking, hiding, and drag-and-drop reordering. Source: Doory repository README.

Audio and visual assets are the lifeblood of creative software. Doory bundles 24 background music loops and 88 sound effect clips, all licensed under CC0. Royalty-free audio works well for casual demo videos and quick mockups. But when brands craft high-stakes marketing campaigns that evoke specific emotional nuances, they still depend on licensed commercial music libraries.

The preloaded visual catalog includes roughly 25,000 icons, emojis, and vector illustrations. Twenty-five thousand scattered, generic graphics suffice for wireframing and schematic diagrams. Yet in professional brand marketing, piecemeal free assets struggle to deliver coherent visual storytelling. Stock photography search requires self-hosters to supply their own Unsplash or Pexels API keys. Demanding user-provided keys protects the project author from copyright and bandwidth liability, but it shifts API quotas and acquisition costs straight to end users.

The documentation plainly notes that only 10 templates ship out of the box. Ten templates are plenty to validate layout and rendering mechanics. But commercial platforms thrive on systematic design templates categorized across hundreds of industry workflows, visual styles, and seasonal niches—a breadth 10 sample files cannot deliver. A template is distilled design craftsmanship, user research, and industry experience packed into a file format. Code can be written in days, but industrial content libraries require years of investment from professional creative teams.

Template Gallery Figure: Shipping with just 10 default templates; massive industrialized asset libraries remain the exclusive moat of commercial platforms. Source: Doory repository README.

Rough Edges Separate Functional Clones from Polished Products

On paper, the open-source project ticks every feature box. In day-to-day use, however, ergonomic details reveal how much polish it still lacks. At specific viewport aspect ratios, label text in the shapes dropdown wraps awkwardly and overflows. Top navigation icons sit uncomfortably cramped, and floating tool panels fail to dismiss automatically when clicking outside. Overlooking interactive edge cases creates subtle friction that exhausts users during marathon editing sessions.

State feedback in the user interface shows logical inconsistencies. Two conflicting save indicators display simultaneously above the canvas: one reads “saved,” while another informs the user that changes are stored locally in the browser. Without centralized state coordination, conflicting indicators erode user confidence in data durability. Export and sharing controls are scattered haphazardly across opposite toolbars, and persistent account registration prompts needlessly distract from creative flow.

The git repository contains only 6 commits, with multiple commit messages acknowledging Claude Opus 5.5’s assistance throughout development. Frontier LLMs can assemble architectural scaffolding at blistering speed. But hardening cross-platform interaction, resilience, and corner-case ergonomics still demands relentless manual debugging by experienced engineers. Furthermore, the repository is released under an Attribution Assurance License, strictly mandating prominent attribution in any commercial distribution—a clause that deters white-label forks and raises the barrier for commercial redistribution.

Open Source Can Build the Engine, but Cannot Buy the Ecosystem

The dialogue surrounding Doory captures how creative tools are evolving. From an engineering standpoint, building a rich browser-based vector editor no longer presents an insurmountable technical hurdle. Fabric.js normalizes canvas rendering, Yjs solves collaborative concurrency, and React provides standard component primitives. The functional core of graphic design software is rapidly becoming an open-source public good.

Yet the true moat of commercial design platforms was never the application code alone. Canva’s enterprise value is anchored in a self-reinforcing creator flywheel: independent designers earn recurring royalties, while corporate clients receive licensed, indemnified assets protected from copyright litigation. Self-hosted software can spin up a clean editing canvas in seconds. But an expansive global web of commercial contracts, legal indemnities, and creator economies cannot simply be bundled into a docker-compose file.

As AI-assisted coding tools continue to spread, similar open-source technical blueprints will emerge across other software domains. For security-conscious organizations requiring full data sovereignty, Doory offers an impressive reference architecture. For everyday teams who rely on millions of ready-to-publish templates, commercial incumbents retain a commanding lead. Open source has democratized design tool mechanics; accumulating the creative ecosystem has only just begun.

Reference Links:

  • Doory Official Code Repository and Documentation
  • Hacker News Community Discussion
  • Doory Live Interactive Demo