mrkeyoor.com_
Tue 01 Sept 17:42 UTC
Webevaluationupdated 26 Aug 2026

penpot review

Penpot is an open-source interface design and prototyping workspace for product teams. It stores designs with web standards such as SVG, CSS, HTML, and JSON, and can run as Penpot's hosted service or on infrastructure you control.

+221stars / 7d
Verdict

Our Penpot checkout installed 144 pnpm packages in 12 seconds, but it exposed no repository-level build or test target, so that clean install is weak evidence for operating the full platform. Penpot is the open-source design suite to shortlist when self-hosting and web-native design data are firm requirements. Use the hosted service first if your team cannot own PostgreSQL, Valkey, storage, mail, upgrades, and export regression checks.

We ran it

Lab card: what happened when we ran penpotScreenshot of penpot (penpot.app)
Install✓ · 12s144 packages · 114 MB
Buildn/ano build script
Testsn/ano test script
Repo6088 files~128,373 lines of source · 316.2 MB · 26 CI workflows

Answers from our run

Does penpot build from source?

Dependencies installed in 12 seconds (144 packages), and the project has no separate build step. We cloned commit 7419bc7 into a clean Debian container with 3 CPUs and no project-specific setup.

Does penpot have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use penpot?

Small teams that only want a sketchpad: the official production path brings a backend, exporter, PostgreSQL, Valkey, asset storage, and proxy configuration.

What are the alternatives to penpot?

Excalidraw, tldraw, Figma. Our Penpot checkout installed 144 pnpm packages in 12 seconds, but it exposed no repository-level build or test target, so that clean install is weak evidence for operating the full platform.

Setup2/512-second workspace install, but no root build or test target
Docs5/5User, deployment, configuration, API, and contribution guides
Community5/559,212 stars and same-day issue and pull request activity
Maturity4/5Active 2.17.1 release with current renderer and export regressions

Discussed on

  1. hnPenpot: Open-source design and prototyping platform1,145 points
  2. hnPenpot: The Open-Source Figma775 points
  3. hnPenpot, Open Source Figma alternative, raises $8M in funding567 points
  4. hnPenpot: Open-source design and prototyping platform256 points
  5. hnPenpot Alpha Release – Free and Open-Source Design Plattform133 points

Who it’s for

Product teams that want designers and developers working from web-native layout and token concepts.
Organizations that need a self-hosted design workspace for governance or data-control reasons.
Teams willing to operate a multi-service application and test exports against their delivery workflow.
Developers connecting design files to automation through Penpot's API, plugins, webhooks, or MCP server.

Who it’s NOT for

Small teams that only want a sketchpad: the official production path brings a backend, exporter, PostgreSQL, Valkey, asset storage, and proxy configuration.
Operators who cannot provide HTTPS and SMTP: the configuration guide says clipboard behavior fails over HTTP, and team invitations depend on email delivery.
Teams whose release process depends on pixel-faithful PDF exports without acceptance checks: open issue #11361 reports broken clipping and scale in macOS viewers.
Design-system teams unwilling to qualify new rendering code: open issue #11362 reports typography and color tokens detaching when component text is edited with the new renderer.

Setup reality

Our sandbox install succeeded in 12 seconds, adding 144 pnpm packages and using 114 MB. The checkout held 6,088 files and about 128,373 source lines. There was no repository-level build or test script to run, so both steps were skipped rather than counted as passes.

That install is only the JavaScript workspace. The documented self-hosted deployment uses Docker Compose or Kubernetes and needs PostgreSQL, Valkey, persistent asset storage, a public URI, HTTPS, and a reverse proxy. SMTP is needed for the normal invitation flow; OAuth and LDAP add their own credentials.

The repository is a Clojure and JavaScript monorepo with 26 CI workflows. Its official production route uses published containers even though our scan found no root Dockerfile. Backups must cover both the Postgres data and uploaded assets, and upgrades should use pinned image versions instead of the default latest tag.

Penpot uses browser standards instead of a private design format

Penpot is a collaborative design and prototyping application built around SVG, CSS, HTML, and JSON. Designers get components, variants, design tokens, Grid and Flex layouts, while developers can inspect generated web code instead of translating every measurement by hand. Files can live in Penpot's hosted service or in a private deployment. The MPL-2.0 license allows teams to inspect and modify the platform while keeping the license obligations attached to changed source files.

The proposition is strongest for teams that already think in browser primitives. A responsive layout expressed with Grid and Flex has a clearer relationship to the eventual interface than a canvas full of absolute positions. Native tokens also give designers and developers a shared vocabulary for color, spacing, and typography. Penpot still does not make generated code production-ready by itself. Inspect output is a reference, and engineering judgment remains between a design and a shipped component.

The 12-second install covered only one layer of the monorepo

We cloned commit 7419bc7 into an unprivileged Debian container with 3 CPUs and 8 GB of RAM. The pnpm install succeeded in 12 seconds, adding 144 packages and taking 114 MB on disk. The repository contained 6,088 files and roughly 128,373 source lines. Those numbers describe a substantial codebase, even though its JavaScript dependency installation was quick.

The root package is private and has no build or test script. Our harness therefore skipped both steps. That is not a failed build, and it is not a clean build either. Penpot spans Clojure services, a JavaScript frontend, an exporter, WebAssembly rendering code, plugins, and an MCP component. The 26 CI workflow files show extensive automation, but a contributor has to follow the project's specific development commands instead of expecting the usual root-level pnpm sequence.

What happened when we ran it

Our run installed 144 packages in 12 seconds and used 114 MB. No install error appeared. The available root manifest then gave the harness no build target and no test target, so it skipped both. We cannot turn that result into a claim about whether the frontend compiles, the Clojure backend starts, or the editor's interaction tests pass at commit 7419bc7.

The scan found a pnpm workspace and 26 CI workflows, but no root Dockerfile and no tests directory. Penpot does keep deployment material under a docker directory, and the public guide points operators to a Compose file and published images. That distinction matters: cloning the repository and installing its Node packages is a contributor setup fragment, while running Penpot is a service deployment. Our sandbox measured the former.

Self-hosting means owning data, mail, storage, and upgrades

The Docker guide expects Docker Compose knowledge, DNS, and proxy configuration. Its default stack listens locally on port 9001 and uses published images. Operators are told to pin a Penpot version rather than accept the latest image implicitly. The application also needs a public URI served over HTTPS because the configuration guide says clipboard behavior does not work over plain HTTP.

PostgreSQL stores application data, while uploaded images and SVG assets need persistent file storage. Valkey coordinates WebSocket notifications. A useful backup therefore covers the database and asset volume, not a copied container directory. High-availability setups add replicated application components and centralized storage such as S3 or a Kubernetes volume. This is normal work for a serious collaborative service, but it makes Penpot a poor first self-hosted app for an inexperienced operator.

Email is part of the ordinary team flow. The guide says SMTP is disabled by default and mail goes to logs, while invited members need the invitation message to join. Google, GitLab, GitHub, OpenID Connect, and LDAP authentication each introduce provider settings or secrets. An organization choosing Penpot for governance should budget time for registration policy, secret rotation, restore drills, and an upgrade rehearsal.

PDF and token regressions deserve workflow tests

The latest release was 2.17.1, published August 17, 2026. Its notes list fixes across variants, imports, browser crashes, S3-backed asset downloads, exports, and MCP connection handling. GitHub recorded another push on August 26 and listed 769 combined issues and pull requests. That count is not a defect total, but the same-day activity shows maintainers and contributors are working through a large queue.

Two current reports are especially relevant to buyers. Issue #11361 says image clipping masks and scaling can render incorrectly in PDFs opened with macOS Preview and browser viewers, while the reporter saw correct output on Android. Issue #11362 says typography and color tokens detach when editing component text with the new renderer in a reported configuration. Neither report proves every user is affected. Both identify workflows worth turning into acceptance tests before a team depends on Penpot for handoff.

The API and MCP server make designs programmable

Penpot has plugins, webhooks, access-token APIs, and an MCP server for connecting design work to code tools. Release 2.17.1 fixed three MCP problems involving call timeouts, stale file sessions, and duplicate WebSocket connections. That is useful evidence of active integration work and a reminder that agent access adds another live connection path to monitor. Automation should use scoped tokens and a test file before touching a shared library.

The programmable layer separates Penpot from simpler drawing boards. Excalidraw is quicker for workshops and rough diagrams. tldraw is a better base when you are building a custom canvas product. Figma remains the easier managed choice for teams that value its existing ecosystem over infrastructure control. Penpot earns the heavier operational cost when open formats, source access, and private hosting are requirements rather than preferences.

Alternatives

ProjectWhat it isPick it when
Excalidraw gh↗A collaborative whiteboard focused on quick hand-drawn diagrams rather than full product design.pick this instead when teams need diagrams and workshops more than components, tokens, inspect output, or production prototypes.
tldrawAn infinite-canvas SDK and application for drawing, diagrams, and custom visual tools.pick this instead when the product is a programmable canvas or whiteboard, rather than a Figma-style design system workspace.
FigmaA hosted commercial design platform with a large plugin and collaboration ecosystem.pick this instead when managed service convenience and ecosystem compatibility outweigh source access and self-hosting.

What people are saying

  1. [velocity-scout] penpot/penpot

Sources

  1. Penpot README
  2. Penpot self-hosting guide
  3. Penpot configuration guide
  4. Penpot 2.17.1 release
  5. PDF export issue #11361
  6. Token detachment issue #11362

More web reviews

axios · super-productivity · Graphite · fastify · tabler · go-zero · the whole board →