Figma → Penpot
Move Figma files, components, libraries, variables, auto layout, prototypes, fonts, comments, branches, permissions, plugins, and developer handoff into Penpot through the exporter with visual and structural verification.
Should you make this move?
Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.
Figma
- Best-in-class multiplayer design, prototyping, components, and developer collaboration
- Shared design files and reusable components improve team consistency
- Cloud dependence, seat costs, and proprietary files create concentration risk
- Plugin, prototype, history, and developer-handoff fidelity can be hard to preserve
Penpot
- Open-source design with web standards and self-hosting improves ownership
- Shared design files and reusable components improve team consistency
- Its plugin ecosystem, prototyping depth, and collaboration polish remain less mature
- Plugin, prototype, history, and developer-handoff fidelity can be hard to preserve
Penpot: Open-source design with web standards and self-hosting improves ownership. This removes a major source-side concern: Cloud dependence, seat costs, and proprietary files create concentration risk.
What you lose: Best-in-class multiplayer design, prototyping, components, and developer collaboration. What you inherit: Its plugin ecosystem, prototyping depth, and collaboration polish remain less mature.
Know the shape of the move.
This timeline assumes
- Up to 500 files, 20 libraries, 25,000 components, and 250 users
- Design-system, product-design, research, and engineering owners approve the migration scope.
- A representative file set covers every source feature and file-size class.
- The source remains available until libraries, prototypes, access, and handoff checks pass.
- The migration team records evidence for every blocking verification check.
What survives the move.
“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.
| Item | Outcome | Impact | What happens | Mitigation |
|---|---|---|---|---|
| Figma files through Penpot Exporter | partial | critical | Penpot recommends its Figma Exporter but notes differing features can make conversion less than fully reliable. | Pilot every feature class and retain source files and acceptance images. |
| Components, libraries, variables, and auto layout | partial | critical | Reusable structure and layout semantics require destination inspection rather than visual-only approval. | Rebuild destination libraries and test instances, tokens, modes, resizing, and overrides. |
| Prototypes, comments, branches, and version history | lost | high | Collaboration and history are not guaranteed by design-file conversion. | Resolve reviews, merge or archive branches, and recreate critical interactions. |
| Plugins and developer handoff | manual | critical | Figma extensions and handoff integrations do not execute in Penpot. | Replace each active workflow and validate SVG, CSS, HTML, and token outputs. |
| Files, pages, and canvases | partial | critical | Core design content can convert while document structure and proprietary features differ. | Pilot every file class and reconcile the complete file inventory. |
| Frames, artboards, groups, and layers | partial | critical | Containers map conceptually while layout and hierarchy can change. | Compare layer trees and screenshots for representative files. |
| Components, symbols, and instances | partial | critical | Reusable assets can import without retaining library relationships and overrides. | Publish destination libraries and reconnect or audit every critical instance. |
| Styles, variables, and design tokens | partial | critical | Style and variable systems have different scope and semantics. | Create a signed token map and rebuild the supported source of truth. |
| Auto layout, constraints, grids, and responsive behavior | partial | critical | Layout engines do not produce identical results. | Test supported viewport and content-stress cases. |
| Fonts and text rendering | partial | critical | Local, licensed, missing, and variable fonts require destination availability. | Inventory fonts and compare text bounds and line breaks. |
| Images, vectors, effects, and blend modes | partial | high | Rendering support and SVG conversion can alter appearance or editability. | Compare screenshots and retain original assets. |
| Prototypes and interactions | partial | high | Triggers, transitions, overlays, variables, and device behavior differ. | Rebuild critical flows and run task-based prototype tests. |
Where each thing goes.
| Source | Destination | Method | Notes |
|---|---|---|---|
| Figma team, project, or workspace | Penpot team or project | manual | Design ownership and access first. |
| Design file | Destination design file | transform | Preserve source ID and archive. |
| Page or canvas | Destination page | transform | Verify order and bounds. |
| Frame, artboard, or board | Destination frame or board | transform | Compare hierarchy and layout. |
| Component, symbol, or instance | Destination component or instance | transform | Reconnect library relationships. |
| Style, variable, or token | Destination style or token | transform | Rebuild supported semantics. |
| Constraint or auto layout | Destination layout behavior | transform | Test resize and content stress. |
| Prototype connection | Destination interaction | manual | Rebuild critical flows. |
| Comment, branch, or version | Archive evidence | manual | Resolve active work before migration. |
Make the move recoverable.
Create the source-of-truth backup
Preserve Figma data, configuration, and operating evidence before any destination write.
- Export Figma files, libraries, assets, prototypes, comments, branches, users, permissions, and settings where available.
- Inventory file features, fonts, styles, variables, plugins, links, handoff, and integrations.
- Record counts by team, project, file, page, component, style, prototype, owner, and access class.
- Hash source files and rendered acceptance images.
Proof to capture: A signed manifest reconciles every scoped record class, runtime dependency, export file, count, and hash.
File and feature inventory
Disposition every file, library, prototype, font, and collaboration artifact.
- Inventory source values and exceptions.
- Define explicit destination mappings.
- Reject unmapped critical records.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
Conversion and visual QA
Import supported structure and identify rendering or behavior differences.
- Normalize encoding, dates, identifiers, and blanks.
- Run a representative pilot.
- Reconcile accepted, rejected, and transformed rows.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
The things most likely to hurt.
These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.
Visually similar files lose reusable structure
Screens render while components, tokens, layout, or libraries flatten.
- Consequence
- Future design work becomes inconsistent and expensive.
- Mitigation
- Inspect structure and behavior, not screenshots alone.
Stop if: A critical design-system relationship has no destination.
Missing fonts or effects alter approved work
Text metrics or unsupported effects shift layouts.
- Consequence
- Design and implementation references become unreliable.
- Mitigation
- Provision fonts and compare rendered acceptance images.
Stop if: A critical screen exceeds visual tolerance.
Both tools remain active design authorities
Teams edit source and destination files.
- Consequence
- Libraries and product designs diverge.
- Mitigation
- Make source read-only and update every handoff and integration.
Stop if: Any unapproved source edit occurs after freeze.
Do the work in this order.
- Days 1–3 · inventory
Inventory and decisions
6–12 hours active2–3 days elapsedOwner review waiting- Inventory Figma data, features, users, domains, and integrations.
- Approve scope, owners, mappings, and exclusions.
Depends on: Figma and Penpot administrator access
Stop / go checkpointExport?
Go when: Every critical item has an owner and disposition.
Stop when: Consent, billing, access, or system ownership is unclear.
- Days 3–5 · backup
Backup and reconcile
5–10 hours active1–3 days elapsedExport processing waiting- Create immutable exports and configuration evidence.
- Reconcile counts, totals, and hashes.
Depends on: Approved inventory
Stop / go checkpointTransform?
Go when: Source totals and export manifests agree.
Stop when: Any critical dataset or configuration is absent.
- Days 5–12 · pilot
Map and pilot
10–35 hours active3–8 days elapsedDestination processing and review waiting- Configure Penpot and transform representative data.
- Run a pilot containing normal records and every critical edge case.
Depends on: Verified backup
Stop / go checkpointScale?
Go when: Pilot mappings, behavior, access, and evidence pass.
Stop when: Any critical check fails or produces unexplained variance.
- Days 10–20 · cutover
Final delta and switch
5–25 hours active1–5 days elapsedDNS, import, or sync propagation waiting- Freeze production writes in Figma.
- Apply the final delta, switch ownership, and run blocking checks.
Depends on: Passed pilot and approved rollback
Stop / go checkpointOpen production?
Go when: Counts reconcile and one destination system owns production.
Stop when: A source writer remains active or a blocking check fails.
- Days 12–40 · observe
Observe and close
3–18 hours active3–10 days elapsedOperating-cycle evidence waiting- Monitor one complete operating cycle.
- Sign the verification report and close rollback only after stability.
Depends on: Verified cutover
Stop / go checkpointClose rollback?
Go when: No trigger occurs during the agreed observation period.
Stop when: Data, access, delivery, routing, or business results regress.
Cut over with a way back.
Cutover
Make Penpot the only production system without losing the final Figma delta.
- Freeze production writes and scheduled actions in Figma.
- Export, transform, and reconcile the final delta.
- Apply the approved delta to Penpot.
- Switch domains, forms, integrations, sending, or sync ownership as applicable.
- Run every blocking verification check and keep the source intact.
Proof to capture: Penpot owns production, totals reconcile, and every blocking check has durable evidence.
Rollback
Return production ownership to Figma without losing destination-era changes.
- Stop new writes and scheduled actions in Penpot.
- Restore the prior Figma routing, forms, integrations, sending, or sync ownership.
- Export the Penpot post-cutover delta.
- Review and apply safe destination-era changes to Figma.
- Run the same blocking checks against the restored source.
Proof to capture: Figma again owns production with current data and no duplicate destination action.
- Unexplained critical count or value variance
- Missing or exposed critical data
- Duplicate production action
- Failed access, routing, delivery, or integration check
- A critical feature has no safe destination replacement
Prove the migration worked.
Every blocking check must pass. Capture the evidence before cleanup begins.
| Pass | ID | Check | Method | Expected result | Evidence |
|---|---|---|---|---|---|
V-01Blocking | File reconciliation | Compare counts by team, project, file, page, owner, and status. | Every scoped file is imported or archived. | File ledger. | |
V-02Blocking | Rendered parity | Compare approved screens at fixed dimensions. | Differences remain within signed tolerance. | Screenshot diff. | |
V-03Blocking | Layer and layout behavior | Inspect hierarchy and resize representative content. | Critical structure and responsive behavior remain editable. | Structure report. | |
V-04Blocking | Components, libraries, styles, and tokens | Inspect definitions, instances, overrides, and variable modes. | Required reusable relationships work. | Design-system report. | |
V-05Blocking | Text rendering | Open files with every font and compare text bounds. | No critical missing font or layout shift. | Font report. | |
V-06Blocking | Interaction flows | Run approved user tasks through representative prototypes. | Every critical path and state works. | Prototype matrix. | |
V-07Blocking | Teams and sharing | Test owners, editors, viewers, guests, and public links. | Least privilege matches policy. | Access evidence. | |
V-08Blocking | Single design authority | Inspect source editability, libraries, plugins, handoff, and integrations. | Penpot alone owns active design work. | Cutover checklist. |
Remove the scaffolding safely.
Safe after: One complete operating cycle, at least seven stable days, and owner sign-off on every blocking check.
- Create final Figma exports and archive verification evidence.
- Revoke temporary credentials, API keys, webhooks, and elevated roles.
- Remove obsolete embeds, forms, jobs, integrations, and DNS records.
- Keep the source intact through the approved retention window.
- Cancel paid plans only after billing, legal, and recovery review.
- Schedule the next Penpot backup, access, and migration-playbook review.
Built to be reviewed.
Tested 2026-07-19. Next scheduled review: 2026-10-19.
- Penpot: switch from FigmaAccessed 2026-07-19
- Penpot: Figma migration stepsAccessed 2026-07-19
- Penpot: import filesAccessed 2026-07-19