Mirror

Figma vs Penpot: Costs, File Portability, and a Trial Checklist

Compare Figma and Penpot using official pricing and export documentation, then test components, client handoff, and migration costs with a practical worksheet.

Figma versus Penpot is a decision about the work you must deliver, who needs access, and who will maintain the environment. A cheaper editor can be an expensive migration if the client still needs an editable file in the original tool. Conversely, paying for familiar software is hard to justify when a lower-cost option passes the actual delivery requirements.

Correction, September 25, 2026: An earlier version described a five-week client project, timed results, a repaired corrupted board, and a continuing export routine without supporting evidence. Those claims have been removed. This is a documentation-based comparison and a proposed evaluation method; it is not a hands-on benchmark.

Illustration of two interface wireframe grids side by side

Illustration only; these are not screenshots or results from a comparative test.

What the official pages establish

Sources checked September 25, 2026. Prices below are the USD amounts displayed on the linked pages, not a quote for your account. Check the billing interval, taxes, seat permissions, and checkout total before committing. A monthly equivalent displayed beside an annual toggle does not establish a month-to-month price.

Decision Documented information What you still need to establish
Figma design access Figma pricing displays Professional Full at $16/month, Dev at $12, and Collab at $3; it also offers a free Starter plan. Which seat each person needs and the total under your selected billing interval. Do not price designers using the cheaper Dev seat.
Penpot hosted access Penpot cloud pricing displays Professional at $0 and Unlimited at $7/editor/month, capped at $175/month. Whether the plan’s storage, history, and team allowances meet your requirements. Free access is not a promise of unlimited storage or retention.
Hosting responsibility Penpot self-host pricing describes running it on your organization’s infrastructure. Who owns updates, backups, access management, and recovery; obtain any applicable support or enterprise quote separately.
Component variants Penpot’s variants guide documents grouping components and changing property values, with conditions for preserving overrides. Whether your own component structure behaves correctly. Feature presence does not measure speed.
Local Figma files Figma’s local-copy guide documents local copies, including .fig for Figma Design. Whether export is permitted and what your chosen destination can reconstruct.
Moving artwork Penpot’s migration article describes an SVG route from Figma. Whether the result retains the editing relationships you need. An artwork transfer is not evidence of full project fidelity.

The table supports a shortlist, not a universal winner. In particular, the old claim that Penpot requires manual work for every variant is an inadequate description of its documented capabilities. Its guide explains that matching layer names, types, and hierarchy help preserve overrides when switching variants. That gives you a specific behavior to test rather than a reason to assume one tool loses.

For Figma, price the actual mix of roles. Its pricing page says people can view and comment on paid-plan files without buying extra seats. That does not mean every developer workflow is free, or that a commenter needs a Full seat. Write the required action beside each person’s name before counting billable seats.

Define a deliverable before timing anything

Start with a small, non-confidential sample representative of your work. For example, choose a settings screen, a form with validation states, a responsive layout, and a reusable button family. These are suggested test objects, not a prescribed project size or a claim about either application’s limits.

Write down what “finished” means. A screen that looks right but has disconnected component instances may fail the next revision. A prototype that plays correctly for the designer but cannot be opened by the intended reviewer fails handoff. A developer who needs an exportable icon has a different requirement from one who needs interactive inspection of a design system.

Run the same acceptance tasks in each candidate. Separate learning time, construction time, cleanup, and review assistance in your notes. If you already know one tool well, report that imbalance instead of treating the first attempt in the other as a controlled productivity benchmark. Repeating a task after learning the workflow can help your decision, but it still does not establish a general performance ranking.

A worksheet for a small-team trial

These are editorial test proposals. No result in this worksheet has been measured by Mirror. Fill in the two result columns with a pass, a concrete defect, or “not tested,” and attach the sample file or screenshot that supports it.

Task Acceptance condition Figma result Penpot result
Change a component state Label override remains correct while state changes Not tested Not tested
Revise a shared component Intended instances update; exceptions remain intentional Not tested Not tested
Resize a layout Text, spacing, and controls remain usable at your required widths Not tested Not tested
Reproduce an accessibility check Required issues can be identified and recorded using your approved process Not tested Not tested
Invite a reviewer Reviewer can open the intended file and leave useful feedback Not tested Not tested
Complete developer handoff Developer can obtain required assets and implementation details Not tested Not tested
Transfer a representative file Essential relationships remain editable, or repair work is itemized Not tested Not tested
Recover a saved copy A separate recovery attempt produces a usable file Not tested Not tested

For plugins, name the exact dependency. “Has plugins” does not answer whether your contrast checker, content importer, or token workflow is supported. Try the required operation with a safe sample and record permissions, output, and any manual alternative. Do not turn one missing extension into a claim that all work in the tool is slower.

For large files, use the machine, browser, fonts, and network conditions your team actually uses. Record the file and operation that stalls. A vague statement that both tools slow down after a certain number of screens is not a reproducible limit: screens can contain very different amounts of content.

Local copy, migration, and recovery are separate checks

A local copy is useful evidence that a file can leave an account. It does not by itself establish that another product can recreate components, layout rules, comments, or prototype behavior. Figma also notes that file owners can restrict viewers’ copying or asset exports. Establish permission before making portability part of a client promise.

For a proposed Figma-to-Penpot move, keep the original intact and test the exact importer or conversion route you intend to use. The linked Penpot article’s SVG method is one documented route, not proof that it is the only current option or that it preserves a complete design system. Record the converter version, inputs, unsupported objects, and repairs. A visually convincing result can still be costly to maintain.

Use the export inspection worksheet to distinguish an archive from a working migration. Ask someone other than the exporter to open the saved result in the intended environment. Check editable text, fonts, images, component links, and the specific interactions the recipient needs. If only the rendered appearance survives, label it as an artwork archive rather than a reversible migration.

Self-hosting adds another recovery problem. Penpot’s Docker installation guide includes a backup section for persistent data. Following an installation guide is not proof that your backup can be restored. Assign an owner and test recovery into a separate environment before relying on it for irreplaceable work. Open source gives you options to inspect and operate software; it does not establish that damaged files are easy to repair.

Calculate costs without inventing productivity savings

Use an actual checkout quote for subscription cost, an infrastructure estimate for hosting, and your trial notes for labor. Keep cash spending separate from staff time: recovering an hour does not automatically create an hour of billable revenue.

Here is an explicitly hypothetical example, not a current vendor quote. Suppose the incumbent costs $400/year, the replacement’s hosting and backup cost $120/year, and initial migration takes eight hours valued internally at $40/hour. The first-year comparison is $400 versus $120 + $320 = $440. The replacement is $40 higher before recurring maintenance. If the same hypothetical replacement also takes one hour a month to maintain, that adds $480/year, making the first-year total $920.

Those assumptions could be very different for your team. A hosted free plan may remove the server expense and much operational work; a required enterprise control may introduce a separate charge. A larger team may have more seats to replace but also more libraries, permissions, and training to migrate. Headcount alone does not determine the cheaper option.

Record three totals: unavoidable cash next year, one-time migration effort, and recurring maintenance effort. Include any overlap period and contract commitment. An annual payment already made is not refunded simply because the team switches today; the exit decision guide helps separate the next decision from money already committed.

Make the decision against the failed tasks

My recommendation is to let required deliverables decide first, then compare cost among the options that pass. If the client requires ongoing work in a particular native file and your proposed transfer cannot preserve it, resolve that constraint before cancelling the incumbent. If both candidates pass and you have no requirement to run infrastructure, evaluate the hosted option before taking on server maintenance.

Choose self-hosting when operating the environment meets a real requirement and someone accepts the operational responsibility. Keep the familiar tool when an essential integration or delivery condition cannot yet be reproduced at an acceptable cost. Choose the alternative when your trial supports it, while preserving originals and documenting any compromises.

A useful conclusion names the deciding task: “reviewers could not access the prototype,” “component overrides survived,” or “the migration needs three repairs we have budgeted.” That is more actionable than claiming either application is inherently faster or safer without evidence.