Skip to content

Tech Stack

Core Technologies

LayerTechnologyWhy
RenderingSkia CanvasKit WASMSame engine as Figma — proven performance, GPU-accelerated, pixel-perfect
UI FrameworkVue 3 + VueUseReactive composition API, excellent TypeScript support
ComponentsReka UIHeadless, accessible UI primitives (tree, slider, etc.)
StylingTailwind CSS 4Utility-first, fast iteration, dark theme
LayoutYoga WASMCSS flexbox engine from Meta, battle-tested in React Native
File FormatKiwi binary + ZstdFigma's own format — compact, fast parsing, .fig compatible
ColorculoriColor space conversions (HSV, RGB, hex)
DesktopTauri v2~5MB native app (vs Electron's ~100MB), Rust backend
BuildVite 7Fast HMR, native ES modules
TestingPlaywright + bun:testVisual regression (E2E) + fast unit tests
LintingoxlintRust-based, orders of magnitude faster than ESLint
FormattingoxfmtRust-based formatter
Type Checkingtypescript-go (tsgo)Native Go implementation of TypeScript type checker

Key Dependencies

json
{
  "canvaskit-wasm": "^0.40.0",
  "vue": "^3.5.29",
  "yoga-layout": "^3.2.1",
  "reka-ui": "^2.8.2",
  "tailwindcss": "^4.2.1",
  "culori": "^4.0.2",
  "fzstd": "^0.1.1",
  "fflate": "^0.8.2"
}

Why Not...

Why not SVG rendering (like Penpot)?

SVG is slow for complex documents. Every node is a DOM element — 10,000 nodes means 10,000 DOM nodes with layout, paint, and compositing overhead. CanvasKit draws everything to a single GPU surface.

Why not Electron (like Figma desktop)?

Tauri v2 uses the system webview (~5MB) instead of bundling Chromium (~100MB). The Rust backend provides native performance for file I/O and system integration.

Why not React (like the original plan)?

The project migrated from React to Vue 3 early in development. Vue's reactivity system and VueUse composables proved more ergonomic for the editor's state management needs.

Why not custom layout engine?

Yoga is maintained by Meta, battle-tested across billions of React Native devices, and implements the CSS flexbox spec. Building a custom engine would be months of work to reach the same correctness level.

Planned Technologies

TechnologyPurposePhase
Yjs (CRDT)Real-time collaborationPhase 6
MCP ServerAI agent integration (117 tools)Phase 5

Released under the MIT License.