“"Simply navigating between pages (even on the example documents) was causing parts of the document to change in bizarre ways." — supermatt (https://news.ycombinator.com/item?id=46064757)”
You know that feeling when a designer sends you a Figma link, you open the inspect panel, and the CSS values look almost but not quite like what your codebase actually uses — requiring a manual translation pass before any code gets written? Or when your legal team flags that all your design IP lives on Adobe's servers under terms you did not write, and one pricing change or acquisition rewrites the equation? Most design tools lock files in proprietary formats that require export steps between design and code, and they store everything on servers you do not control. You cannot self-host Figma, you cannot read a .fig file without Figma, and the entire workflow depends on a vendor relationship you cannot renegotiate.
Think of Penpot as a Figma-shaped wrapper around an SVG document. When you draw a shape or set a color, Penpot writes those values as SVG markup and CSS properties in PostgreSQL — not as proprietary bytes. Your browser runs a ClojureScript and React frontend that sends edits to a Clojure backend running on the JVM; a separate exporter service handles PNG and PDF output. When you open the inspect panel, you see real CSS that maps directly to what a developer would write, because the design representation and the CSS representation are the same thing. To self-host: you run three Docker containers — the app, the exporter, and PostgreSQL — and you own every file. Version 2.16.0 added an opt-in WebGL rendering path that bypasses the DOM entirely for canvas operations, targeting the memory and stability issues that plagued the DOM-based renderer on complex documents.
If you run a team in a regulated industry — healthcare, finance, defense — where sending design files to a cloud vendor is a compliance issue, Penpot is the only viable self-hosted design tool in this category. If you are a developer on a team still doing a manual design-to-code translation pass, Penpot's inspect mode outputs real CSS to copy directly. Not the right fit if you need Sketch file import (confirmed missing per HN community), a true offline desktop app, or a single-binary lightweight self-hosted install — the multi-service Docker stack requires meaningful ops overhead.
The 10-year track record with 52,429 stars and active company backing from Kaleidos makes Penpot more credible than most open-source design tools, and the data sovereignty use case is genuine and underserved. The WebGL renderer shipping in 2.16.0 addresses the most-cited production failure mode, but it is still opt-in beta — you would be an early adopter of the new rendering path. If self-hosting is a hard requirement, this is the only serious option in the space; if it is merely a preference, the DOM stability issues documented in the community make it worth waiting for the WebGL renderer to become the default before committing.
Deep-dive insight, Easy and Pro modes, plus action playbooks — the full breakdown is one tap away.