Vergleich mit Penpot
OpenPencil und Penpot sind beides Open-Source-Design-Tools, aber sie unterscheiden sich grundlegend in Architektur, Rendering und Dateiformaten.
1. Auf einen Blick
| Metrik | Open Pencil | Penpot |
|---|---|---|
| Total LOC | ~26.000 | ~299.000 |
| Quelldateien | ~143 | ~2.900 |
| Sprachen | TypeScript, Vue | Clojure, ClojureScript, Rust, JS, SQL, SCSS |
| Rendering-Engine | ~3.200 LOC (TS, 10 Dateien) | 22.000 LOC (Rust/Skia WASM) |
| UI-Code | ~4.500 LOC | ~175.000 LOC (CLJS + SCSS) |
| Backend | Keines (local-first) | 32.600 LOC + 151 SQL-Dateien |
| LOC-Verhältnis | 1× | ~11× |
Open Pencil ist ~11× kleiner — und das ist der Punkt. Es ist keine Vereinfachung; es ist eine grundlegend andere Architektur.
2. Architektur
| Aspekt | Open Pencil | Penpot |
|---|---|---|
| Rendering | Skia CanvasKit (GPU, WASM) | Skia Rust/WASM (render-wasm v1) |
| Layout | Yoga WASM (CSS-Flexbox) | Eigene CLJS-Engine |
| Dateiformat | Figmas Kiwi-Binär (.fig) | Eigenes SVG + penpot-Metadaten |
| Desktop | Tauri v2 (~5 MB) | Kein nativer Client |
| Backend | Keines (P2P) | Clojure + PostgreSQL + Redis |
| Hosting | Läuft lokal, kein Server nötig | Erfordert Docker-Stack |
3. Rendering
Open Pencil und Penpot verwenden beide Skia für das Rendering, aber die Implementierungen unterscheiden sich:
- Open Pencil: CanvasKit WASM — bewährt, GPU-beschleunigt, dieselbe Engine wie Figma
- Penpot: Eigener Rust/Skia-WASM-Renderer (render-wasm), ersetzt den früheren SVG-Renderer
4. Dateiformat
| Open Pencil | Penpot | |
|---|---|---|
| Native-Format | .fig (Kiwi-Binär) | .penpot (SVG + Metadaten) |
| Figma-Import | Nativ | Plugin/Konverter |
| Figma-Export | Nativ | Nicht unterstützt |
| Figma-Zwischenablage | Bidirektional | Nicht unterstützt |
| Dateigröße | Kompakt (Zstd-komprimiert) | Größer (SVG-Text + JSON) |
5. Layout
| Open Pencil | Penpot | |
|---|---|---|
| Engine | Yoga WASM (CSS-Flexbox) | Eigene CLJS-Implementierung |
| CSS Grid | Nicht unterstützt | Unterstützt |
| Flexbox | Vollständig (via Yoga) | Eigene Implementierung |
| Korrektheit | Yoga wird auf Milliarden von Geräten getestet | Eigene Testmatrix |
6. Kollaboration
| Open Pencil | Penpot | |
|---|---|---|
| Modell | P2P (Trystero + Yjs CRDT) | Client-Server |
| Cursor | ✅ Echtzeit | ✅ Echtzeit |
| Offline | Vollständig offline-fähig | Erfordert Server |
| Self-Hosting | Nicht nötig (P2P) | Docker-basiertes Self-Hosting |
7. Entwicklererlebnis
| Open Pencil | Penpot | |
|---|---|---|
| Beitragsumfang | ~143 TS-Dateien | 2.900+ Dateien, 4 Sprachen |
| Build-System | Vite + Bun (Sekunden) | Shadow-CLJS + Docker (Minuten) |
| Typensicherheit | TypeScript durchgängig | Clojure (dynamisch typisiert) |
| Tests | Playwright + bun:test | Clojure-Test + Cypress |
| Desktop-Build | bun run tauri build | Kein nativer Client |
8. Programmierbarkeit
| Open Pencil | Penpot | |
|---|---|---|
| CLI | ✅ Headless .fig-Operationen | ❌ Kein CLI |
| AI-Werkzeuge | 87 Werkzeuge + MCP-Server | Plugin-System |
| JSX-Renderer | ✅ Programmgesteuerte Erstellung | ❌ |
| Eval-Befehl | ✅ Figma Plugin API | ❌ |
| Plugin-System | Über eval/MCP | ✅ Natives Plugin-System |
9. Desktop
| Open Pencil | Penpot | |
|---|---|---|
| Native App | ✅ Tauri v2 (~5 MB) | ❌ |
| Offline | ✅ Vollständig | Erfordert Server |
| System-Schriften | ✅ Vollständig | Nur hochgeladene |
| Autosave | ✅ | Server-seitig |
| Native Menüs | ✅ macOS/Windows/Linux | N/A |
10. KI-Integration
| Open Pencil | Penpot | |
|---|---|---|
| Integrierter Chat | ✅ OpenRouter-Integration | ❌ |
| Werkzeugnutzung | 87 Design-Werkzeuge | ❌ |
| MCP-Server | ✅ stdio + HTTP | ❌ |
| Bring your own key | ✅ Kein Vendor-Lock-in | ❌ |
11. Skripting & Erweiterbarkeit
| Open Pencil | Penpot | |
|---|---|---|
| Headless CLI | ✅ 12 Befehle | ❌ |
| Plugin API | Figma-kompatibel | Eigene Plugin API |
| MCP-Server | ✅ 90 Werkzeuge | ❌ |
| Eval-Befehl | ✅ JS-Ausführung | ❌ |
| JSX-Renderer | ✅ Programmatisch | ❌ |
Zusammenfassung
| Stärke | Gewinner | Grund |
|---|---|---|
| Figma-Kompatibilität | Open Pencil | Natives .fig + Zwischenablage |
| Programmierbarkeit | Open Pencil | CLI, eval, JSX, MCP-Server |
| Desktop-Erlebnis | Open Pencil | Native Tauri-App, ~5 MB |
| KI-Integration | Open Pencil | 90 Werkzeuge, MCP, integrierter Chat |
| Codebasis-Einfachheit | Open Pencil | 11× weniger Code, 1 Sprache |
| CSS Grid | Penpot | Yoga unterstützt es noch nicht |
| SVG-native | Penpot | SVG ist die Muttersprache |
| Self-Hosting | Penpot | Docker-bereit vs. Desktop-only |
| Ökosystem-Reife | Penpot | Jahre der Produktion vs. frühe Phase |
Open Pencil ist architektonisch schlanker — ein Single-Process-CanvasKit-Renderer in ~26K LOC TypeScript, Figma-kompatibel by Design. Penpot ist eine Full-Stack-Plattform mit ~299K LOC über Clojure, ClojureScript, Rust und SCSS, plus eine Docker-Service-Flotte. Beide bieten jetzt Echtzeit-Kollaboration (unterschiedliche Architekturen: P2P vs. Server). Penpot hat ein Plugin-Ökosystem und serverseitigen PDF-Export; Open Pencil hat Figma-kompatibles Headless-Scripting, 90 KI/MCP-Werkzeuge, SVG-Export und eine native Desktop-App.