penpot/penpot - Open Source PR Review Scorecard

Penpot: The open-source design platform for Product teams that need scalable collaboration.

C-Rank Grade: A (Welcoming) - 70/100

External PR Merge Rate: 58%

Response Time: 9h

First Timer Success: 58%

Frequently Asked Questions

Is penpot/penpot welcoming to first-time open-source contributors?

penpot/penpot has a recorded first-timer success rate of 57.9%. Repositories ranked A typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in penpot/penpot respond to incoming external pull requests in approximately 8.9 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 70.0 C-Rank™ score (A Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 70.0 places penpot/penpot in the A tier.

What is the external contributor pull request merge rate for penpot/penpot?

The external contributor pull request merge rate for penpot/penpot is 57.9%, based on public PR activity from non-core contributors.

Are there Good First Issues available in penpot/penpot?

penpot/penpot currently has 4 active issue(s) tagged with beginner-friendly labels like "good first issue", "beginner", or "up-for-grabs".

penpot
penpot/penpotA•Welcoming60.4k
GitHub
Back to Explorer
penpot

penpot/penpot

60,379
Active (30d)A•Welcoming(70/100)Clojure

Penpot: The open-source design platform for Product teams that need scalable collaboration.

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Strict Architecture Gatekeeper

Warmth Score
7.0/10
Patience Score
7.8/10
Nitpick Rate
35%

Strict review standards in penpot/penpot. Ensure PR scope matches issue requirements closely before requesting review.

What Contributors Actually Say

Discussions in penpot/penpot focus heavily on practical implementation feedback, code formatting standards, and issue reproduction details.

Hidden Friction Signals

Unlinked PRs without issue context and changes that fail automated test suites face the highest review friction.

Unwritten Rules

  • •1) Keep PR scope strictly aligned with the linked issue.
  • •2) Ensure local linters pass before opening a review.
  • •3) Maintain full test coverage for modified logic.

Top PR Submission Do's

  • •Add or update tests for changed behavior before requesting review
  • •Run the repository formatter and linter locally
  • •Update docs or README when behavior changes

Top PR Friction Pitfalls (Don'ts)

  • •Do not leave requested test coverage unresolved
  • •Do not submit formatting-only noise with feature changes
  • •Do not ship user-facing changes without matching docs
Response Velocity
8 hours
Standard maintainer review cycle

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
57.9%
Moderate PR acceptance rate

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
57.9%
Strong first-timer PR acceptance rate

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
36 core
Highly collaborative maintainer core
Diagnostic Health HUD
57.9%
Merge Gauge
57.9%
1st-Timer
Community Vibe64/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for penpot/penpot
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/penpot/penpot)](https://getmerged.abhishekco.de/penpot/penpot?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

Is your feature request related to a problem? Please describe. When I am swapping a copy for another component and I am not sure which connected library it lives in, I want to look for the same name in each library without typing it again, so I can find the right component quickly and get back to the design.* Today, the search in the Swap component menu is cleared every time the library is changed in the library selector. A designer who types "button primary", finds nothing in the file library and switches to a connected shared library lands on the full component list of that library, with an empty search field. To check three libraries, they type the same name three times. This happens most in files with several shared libraries connected (a design system split into core, icons and product-specific libraries, for example). The search is a filter on what the designer is looking for, not on the library, so losing it when the library changes breaks the flow at the moment the designer is

📅 Opened Oct 14, 2026💬 0 comments
Quality: 75/100Contribute

Steps To Reproduce Open any plugin built with @penpot/plugin-styles, for instance the bundled MCP one at /plugins/mcp/. Open the network tab and look for a request to fonts.bunny.net. On a deployment with the Content Security Policy enabled, open the browser console instead: the violations are reported there. Reading the source is enough too: plugins/libs/plugins-styles/src/lib/core/fonts.css starts with a remote @import, and that file is pulled in by styles.css, the entry point of the package. Expected behavior A plugin renders with its intended typography without the browser reaching out to any domain other than the Penpot installation's own, so that it also works on an air-gapped deployment and 'self' is enough to cover it in the Content Security Policy. Actual behavior plugins/libs/plugins-styles/src/lib/core/fonts.css starts with a remote import: @import url('https://fonts.bunny.net/css?family=work-sans:400,500&display=swap'); Since styles.css pulls that file in and styles.css i

📅 Opened Oct 1, 2026💬 0 comments
Quality: 90/100Contribute

Is your feature request related to a problem? Please describe. When creating new pages in the layers sidebar, you can reposition the new layer in the list by dragging. However, you're not able to hold the layer and scroll up. Instead, one has to rely on the auto-scrolling that happens when holding the layer toward the top of the list. This is not ideal, as it requires motion dexterity and precision. Describe the solution you'd like. Allow for layer repositioning to combine mouse scrolling Describe alternatives you've considered. No response Additional context No response

📅 Opened Jun 29, 2026💬 3 comments
Quality: 40/100Contribute

Steps To Reproduce To (hopefully?) reproduce the issue: On the server, run ps faux | grep chrome-headless | grep defunct | grep -v "grep", no result On the penpot frontend, go to project, create a new file Add a new Board Go to Design, click on the "+" to add a new Export Click "Export 1 Element" Wait a few seconds (for some reason ? It's longer than just waiting for the exported file) On the server, run ps faux | grep chrome-headless | grep defunct | grep -v "grep", 2 new zombie processes exist. Expected behavior The chrome-headless (forked?) processes get joined (waited?) by the parent process when they're done, leaving no zombie process behind. Actual behavior We're currently self-hosting Penpot on an Ubuntu machine via Docker. Every time someone exports an element using the UI, 2 new zombie processes are created on the server, children of the penpot-exporter container. I haven't seen anything on the patch notes from recent releases that would tell me this has been fixed in more

📅 Opened Jun 19, 2026💬 1 comment
Quality: 40/100Contribute

Is your feature request related to a problem? Please describe. In the workspace, once the search UI is open (either Search layers or Search on canvas), there is no keyboard way to dismiss it — closing requires reaching for the close (X) control with the mouse. Pressing Escape is the standard convention in most tools and operating systems for dismissing panels, dialogs, and overlays. Not supporting it here breaks a deeply ingrained habit and interrupts keyboard-first workflows. This is a small UX enhancement complementary to the toggle behaviour described in #9528, and sits on top of the search work landing in the 2.16 milestone (related context: PR #8899). Panels in scope The following panels have been identified as missing Escape-to-close support: Search (Search layers / Search on canvas) — related to #9528 and PR #8899 History Shortcuts Other panels in the workspace should be audited and brought into alignment with this behaviour where applicable. Describe the solution you'd li

📅 Opened May 12, 2026💬 2 comments
Quality: 30/100Contribute
Looking for more Clojure beginner tasks?Explore Clojure GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for penpot/penpot

When evaluating whether to contribute to penpot/penpot, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of penpot/penpot acknowledge new external contributions in approximately 8 hours. Out of all submitted pull requests from non-core authors in the last 180-day window, 57.9% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to penpot/penpot

01

Is penpot/penpot welcoming to first-time open-source contributors?

penpot/penpot has a recorded first-timer success rate of 57.9%. Repositories ranked Welcoming typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~8 hours. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 70.0 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 70.0 places penpot/penpot in the Welcoming tier.

04

What is the external contributor pull request merge rate for penpot/penpot?

The external pull request merge rate is 57.9%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in penpot/penpot?

Yes, penpot/penpot currently has 4 active issue(s) tagged with beginner-friendly labels. You can inspect these directly from the repository issues tab.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for penpot/penpot are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.