Figma cost vs self-hosted Penpot

Figma charges per seat across its Full, Dev and Collab types, and its data residency needs Enterprise. Self-hosting Penpot removes the license line but moves cost to PostgreSQL, Valkey, storage, migration and staff time.

On this page

Does self-hosting Penpot cost less than Figma?

Self-hosting Penpot usually costs less in recurring license fees than staying on Figma, but it is not free to run. Penpot is licensed under the Mozilla Public License 2.0, so there is no license fee for running it on your own servers. The comparison therefore turns on infrastructure, migration effort and internal skills rather than per-seat prices. If your renewal is driven by seat growth, that is where the savings are most likely to show up. If your renewal is driven by a data residency requirement, the question is whether the hosting, operations and migration work costs less than the Enterprise tier you would otherwise need to keep files in one region.

Self-hosting moves cost from a subscription into people and infrastructure. The recurring items are servers or cloud instances, PostgreSQL 13 or later, Valkey for websocket notifications, and storage for uploaded objects, which can be the filesystem or an S3-compatible store such as MinIO. Staff time for upgrades, backups, monitoring and access management is the cost most often underestimated, along with the one-time effort of exporting Figma files with the Penpot exporter plugin and checking them after import. Ask whoever will run the instance how many hours a month they expect operations to take, and whether that work is already in someone's role or would need new headcount.

Figma seat fees, by contrast, scale with the number of people who edit, view or develop designs, and the tier you need depends on features such as Dev Mode and enterprise governance. Compare the per-seat charges across Full, Dev and Collab roles on Figma's pricing page with your own invoices, and count how many people hold each role today and in the next renewal period. Penpot's cloud pricing is a separate option, and its published tiers are listed on the Penpot pricing page, so include a paid Penpot plan in your comparison if you do not want to self-host. Ask for a written quote for both the self-hosted and managed routes before deciding.

Which cost components change when you move from Figma to self-hosted Penpot

This table maps each cost component of a Figma deployment to its self-hosted Penpot counterpart and marks whether it is paid once or recurs. Figma charges per seat and runs the service for you, while Penpot's software has no license fee but moves hosting, database, storage and upkeep to your team or a partner. The main takeaway is that the seat line is replaced by recurring infrastructure and staff time, so compare total effort, not only seat prices.

Cost componentFigma (commercial)Self-hosted PenpotOne-time or recurring
Seats or licensesFull, Dev and Collab seats billed per user by plan tier. Confirm current rates with Figma.No license fee. Optional Penpot plans include Unlimited at $7 per editor monthly and Private Server at $50k yearly (Penpot pricing page).Recurring for Figma seats. Penpot cloud plans are optional.
Hosting computeIncluded in Figma's cloud service. Data residency requires the Enterprise plan.Virtual machines or nodes running Penpot containers, sized to user count and file activity.Recurring
PostgreSQL and ValkeyNot visible to the customer.PostgreSQL 13 or later is required. Valkey coordinates websocket notifications. Both need backups and patching.Setup is one-time. Hosting and upkeep are recurring.
Object storageFigma stores design files on its own servers.Uploaded objects go to the filesystem or S3-compatible storage such as MinIO. Capacity grows with uploads.Recurring, as storage use grows
Deployment and configurationAccount and workspace setup only.Docker Compose, the official Helm chart, OpenShift, Rancher or TrueNAS, configured by your team or a partner.One-time
Figma file migrationLocal .fig, .jam or .deck copies carry no version history or comments.Penpot's Figma exporter plugin converts files to .zip. Prototyping settings do not convert, so plan review time.One-time
Identity integrationConfirm which SSO and provisioning options your Figma plan includes.Email login by default, plus Google, GitHub, GitLab, generic OpenID Connect or LDAP.One-time setup, recurring maintenance
Backups, upgrades and supportVendor-run. Confirm support and recovery terms in writing.Your team or a partner runs backups, restore tests and version updates, such as releases 2.18.1 to 2.18.3 in October 2026.Recurring
Internal skillsAdmin skills limited to Figma's console and plan settings.Staff need Linux, containers, PostgreSQL and identity administration, or a retained support partner.Initial training is one-time. Ongoing skills are recurring.

What moves the comparison most

Figma is billed by seat and by plan, while a self-hosted Penpot instance carries no license fee, so the comparison turns on who needs access, how much design material moves, and what the infrastructure must withstand. The cards below cover the drivers that change the total most, and each one names what to confirm before asking for a quote.

Editor and viewer headcount

Figma bills by seat, and the seat type you assign (Full, Dev or Collab) sets the recurring cost for each person. Self-hosted Penpot has no per-editor license, so the cost of adding a designer is mostly the compute and support load they add. Count who actually edits, who only inspects handoff, and who only comments before comparing. Ask Figma to confirm which seat types each group needs under your plan.

Library count and file size

The number of shared libraries and the size of the largest files drive migration effort and storage needs more than headcount does. Penpot's Figma exporter plugin converts components, variants, auto layout and text, but not prototyping settings, so libraries with heavy prototyping need a separate review. Inventory libraries, file sizes and open dependencies, then run a pilot export of your largest file to measure the real effort.

Availability and backup targets

A self-hosted design server becomes a system of record once teams depend on it for live work, so the recovery objectives you set decide how many nodes, database replicas and backup copies you run. PostgreSQL holds the design data and Valkey coordinates real-time notifications, so both need the same backup and failover planning. Agree on the recovery point and recovery time targets with the design leads before choosing the topology.

Enterprise-only residency controls

Figma's data residency option is limited to its Enterprise plan, and comments, file names, plugins, fonts and preview thumbnails stay outside the chosen region. If residency is the reason for the move, the cost comparison should include the Enterprise tier, not the lower seat prices. Hosting Penpot in your own region keeps design files, comments and accounts under one control, but confirm where backups and object storage also reside.

PostgreSQL and container skills

Penpot supports only PostgreSQL, recommending version 13 or later, and it is deployed with Docker Compose or a Helm chart. Teams that already run PostgreSQL backups, upgrades and container platforms can absorb this work, while teams without those skills should price in outside operations support. Check who will patch the database, rotate credentials and test restores, because those tasks recur for as long as the server runs.

Identity integration capacity

Self-hosted Penpot supports email and password login by default, plus Google, GitHub, GitLab, generic OpenID Connect and LDAP. Connecting it to your existing identity provider replaces a separate account store and makes offboarding a single action. Confirm which login method your directory supports, who owns the client registration, and whether someone in-house can configure and test OIDC or LDAP before you cut over.

How to build the comparison with your own numbers

This sequence turns Figma's seat pricing and Penpot's open-source licensing into a comparison built on your own seat counts, files and infrastructure. The output is a three-year cost view that separates one-time work from recurring spend and that you can take into a quote request.

  1. Export current Figma seat counts by type

    A workspace owner or admin exports the current member list from the Figma admin console and records how many seats sit in each category, including Full, Dev and Collab seats, and which plan each team or organization is on (Professional, Organization or Enterprise). Confirm the seat types and billing period against your current invoice, not against memory or a pricing page. The step is done when every seat has a type, a plan and an owner, and the totals match the invoice line items.

  2. Inventory every file and library

    Designers and the design system owner list every design file, team library, shared style and component set that would need to move, with its approximate size, last edit date and owner. Flag files that use prototyping settings, since Penpot's Figma exporter does not convert those. The step is done when the list covers every project that is still in active use, and each file has a named owner who will check it after migration.

  3. Size the Penpot environment

    Platform engineering sizes the target environment from the inventory. Penpot supports only PostgreSQL, with version 13 or later recommended, uses Valkey for websocket notification coordination, and stores uploaded objects either on the filesystem or in S3-compatible storage such as MinIO. Record the expected concurrent editors, the storage volume from the inventory, and the high availability and backup requirements. The output is a component list with sizing assumptions that another engineer can review.

  4. Price the infrastructure in your environment

    Finance and infrastructure teams price the components sized in the previous step using your own cloud or data center rates: compute for the application, managed or self-run PostgreSQL, Valkey, object or filesystem storage, backups, network egress, monitoring and the load balancer. Penpot itself carries no license fee under the Mozilla Public License 2.0, so this line is the recurring infrastructure cost. The step is done when every component has a monthly and annual figure taken from a current rate sheet or invoice.

  5. Add migration and fidelity-check effort

    Estimate the internal hours for running Penpot's Figma exporter plugin, checking converted components, variants, auto layout, libraries and text, and rebuilding prototyping flows outside Penpot where needed. Ask the design team to time a pilot file so the estimate rests on measured work. The step is done when each migration task has an owner, an hour estimate and a note on which content will be rebuilt by hand.

  6. Add internal and external support hours

    Account for the people who will run the platform: internal platform engineers for installation, upgrades and backups, identity staff for login through OpenID Connect or LDAP, and designers for training. If you plan to use an implementation partner, request a written, fixed-scope proposal that states what is included, the deliverables and the timeline before work starts. The step is done when support hours are listed by role, with ongoing hours shown separately from the one-time setup hours.

  7. Build the three-year view

    Lay out a three-year table with the current Figma spend on one side and the Penpot path on the other. Put one-time items (migration, setup, training, and any implementation fees) in a separate block from recurring items (infrastructure, storage growth, support, and upgrade effort). Include a note on any optional paid Penpot plan you may choose, using the pricing shown on Penpot's pricing page at the time you read it. The output is a single sheet that shows the year-by-year difference and the assumptions behind each line.

  8. Request written quotes for implementation

    Send the inventory, sizing and support assumptions to two or three implementation providers and ask for written, fixed-scope quotes with deliverables, responsibilities and timelines. Ask each provider to state what is excluded, such as ongoing support, upgrades or the costs of your own infrastructure. The step is done when every quote is compared against the same assumptions and you can explain each difference in your three-year view.

Costs teams forget on each side

A seat price comparison only shows the license line. The costs below sit on both sides of the move, and most of them appear after cutover rather than in the first quote. Check each one before you set a budget or a date.

Lost version history and comments

Figma's local copies are saved as .fig, .jam or .deck files, and they carry no version history or comments. Anything the team reviewed in comment threads or needed to roll back to an earlier state stays behind in the cloud account. Before you leave, decide which files need an archive with their history, who owns that archive, and how long it must be kept. Ask legal and records teams to confirm what they need to retain.

Rebuilding plugins and integrations

Teams that rely on Figma plugins, scripts or the REST API for handoff, token syncing or asset export will need replacements in Penpot. Penpot's Figma exporter does not carry prototyping settings, so any workflow built on prototype links needs a separate plan. Inventory every plugin and integration in use, then assign an owner to rebuild or retire each one.

Migrating and verifying libraries

Shared component libraries and design systems are the hardest part of a file move. Components, variants, auto layout and text generally convert, but each library needs a fidelity check after import, and tokens must be mapped to Penpot's native design tokens. Budget internal designer time for this review, because no tool can confirm visual parity for you.

Penpot monitoring and patching

A self-hosted Penpot instance needs someone to watch its health and apply new releases. Penpot depends on PostgreSQL, Valkey and object storage, and each of these components has its own patch cycle. Set a schedule for reviewing Penpot releases and assign who tests them in staging before production. Ask your provider which of these tasks are included in a retainer.

Backup restore testing

A backup that has never been restored is not evidence that recovery works. For Penpot, a restore test must cover both the PostgreSQL database and the uploaded objects on the filesystem or in S3-compatible storage, so the two stay consistent. Schedule restore drills, record the results, and keep the evidence for your assessors. Confirm the recovery objectives your business needs before you choose the tooling.

Certificates, identity and on-call

Certificates for the Penpot domain, OIDC or LDAP connections and any reverse proxy need renewal tracking, or logins fail without warning. Someone also has to answer for the service outside business hours when designers depend on it for release work. Agree on an on-call rota and an escalation path before go-live, and check whether your provider covers that rota or only the initial build.

How the costs differ by team situation

A small design team on one Figma workspace usually pays mostly for seats, so the main question is how much of that spend a self-hosted Penpot instance replaces. Penpot's license cost is zero under the Mozilla Public License 2.0, which moves the cost into hosting labor, infrastructure and the time needed to keep one instance patched and backed up. For a team of a few designers, the infrastructure footprint is usually modest, but the recurring administration time often becomes the largest line.

  • Seat spend you stop paying: Figma charges per seat by role, and that fee ends after cutover. Model the seat count you would otherwise keep for the overlap period.
  • Small infrastructure footprint: one application node, PostgreSQL 13 or later, Valkey and file storage cover the core stack, and Docker Compose is documented for setup.
  • Vendor reference points: Penpot's cloud pricing lists Professional at $0 and Unlimited at $7 per editor per month, capped at $175 per month. Compare these with the cost of a server you run yourself.
  • Administration time: someone must own upgrades, backups and restore tests. For a single team this is often the largest recurring cost.
  • One-time migration: converting files with the Figma exporter plugin is a one-time effort, and it grows with the number and complexity of files.

Before you commit, confirm which prototyping features your team relies on, because those do not convert. Ask any implementation partner for a written quote that states who runs the first migration and who patches the server afterward.

What the supplied facts do not settle

The researched facts for this page do not include Figma's seat prices for Full, Dev and Collab across Professional, Organization and Enterprise, so treat any per-seat figure you have as unconfirmed until Figma states it in writing. Ask Figma for a quote that lists each seat type, the number of Full editors, Dev seats and Collab seats in scope, the billing period and currency, and whether the Enterprise features you need, such as data residency, are included in the price. Ask too how seat reductions are handled after a migration, including the notice period and whether any minimum seat count applies. Keep these answers in the same spreadsheet as your Penpot cost lines so both sides of the comparison use the same currency, period and headcount.

Penpot's cloud pricing is published, and its Private Server tier is listed separately, but the facts for this page do not state what support, upgrade or security patch coverage costs for a self-hosted installation. Confirm with the Penpot project and with any implementation partner whether support is paid, what it covers, and what response expectations apply. Penpot documents Docker Compose, an official Helm chart, OpenShift, Rancher, Elestio and TrueNAS in its getting started guide, so pick the option that matches your existing cluster standard before asking for quotes. A partner's written scope should name the target platform, PostgreSQL version, Valkey, the storage backend (filesystem or S3-compatible such as MinIO), login method, backup and upgrade procedures, and the acceptance tests that close the engagement.

The Figma exporter plugin converts components, variants, auto layout, libraries and text, but it does not convert prototyping settings. Your design leads should inventory every Figma file that contains prototype links, transitions or interactive flows, because those flows will need manual rebuilding or a decision to retire them. Ask the implementation partner for a conversion test on a representative sample file, a written fidelity checklist covering components and library links, and a list of every setting the exporter drops. Confirm what Penpot offers for prototyping in the version you deploy, since the facts for this page do not describe it. Plan rebuild effort from your own file inventory, not from a generic figure.

Questions buyers ask before comparing Figma and Penpot costs

How much effort does a self-hosted Penpot instance take to run?

Effort depends mainly on how many components you run and how much of the platform your team must own. A basic deployment uses Docker Compose or the official Helm chart, and the stack needs PostgreSQL 13 or later, Valkey for websocket notification coordination, and either filesystem or S3-compatible storage such as MinIO for uploaded objects. Each of those services must be installed, patched, backed up and monitored. Effort rises with high availability requirements, the number of environments (test, staging and production), network isolation for closed sites, and the identity integration you need. Ask any implementation partner for a written scope that lists each component, environment and integration, because that list is what drives the quote. Confirm the current deployment options in the Penpot technical guide.

How long does a Penpot library migration take?

No general duration applies, so the timeline should come from an assessment of your own files and libraries. The penpot-exporter-figma-plugin, maintained by Kaleidos under MPL-2.0, converts Figma files into a .zip that Penpot can import, but it does not support prototyping settings, so those must be rebuilt or accepted as lost. The main drivers are the number of shared libraries, how many files reference each library, total file size, how heavily designs depend on prototyping, and how much fidelity review designers must do after import. Teams with a few libraries and well-structured components usually have less rework than teams with years of undocumented components. Ask for a written inventory of libraries, files and prototype dependencies before agreeing a timeline, and ask who performs the post-import fidelity checks.

What skills does the internal team need to run Penpot?

The team needs four skill areas, and the depth required depends on the deployment size:

  • Container skills: Docker Compose for small installs, or Helm on Kubernetes or OpenShift for larger ones.
  • Database administration for PostgreSQL 13 or later, including tested backup and restore procedures.
  • Operations for Valkey and object storage, plus TLS certificates and a reverse proxy in front of the application.
  • Identity administration for whichever login method you choose: email and password, Google, GitHub or GitLab OAuth, generic OpenID Connect, or LDAP.

These skills are needed at installation and again for every upgrade, because the platform changes over time. Confirm with the Penpot documentation which versions and options your environment requires before you assign roles.

Can our team deploy Penpot without outside help?

Some teams can, if they already have the skills described above and have time for patching and upgrades. Penpot is open source under MPL-2.0 and publishes installation documentation, so no vendor license stands between you and a working instance. Outside help is common for hardening, identity integration, library migration and closed-network installation, where mistakes are costly to reverse. DeployOpen plans, implements, customizes, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms in your own cloud accounts, data centers or air-gapped networks. Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts, and ongoing support is available as a retainer. DeployOpen is not an official partner of Penpot or Kaleidos.

What recurring costs remain after moving off Figma?

Self-hosting removes per-seat Figma fees but leaves recurring costs that you should itemize in any comparison. The main recurring items are:

  • Infrastructure for compute, PostgreSQL, Valkey, object storage, backups and network traffic.
  • Staff time for monitoring, patching, certificate renewal and version upgrades.
  • Support or a retainer, if you buy ongoing help.
  • Identity services, if you already pay for a directory or identity provider that Penpot will use.

One-time costs include the assessment, library migration, initial setup, hardening, documentation and training. Ask Figma for a quote based on your exact seat mix, including Full, Dev and Collab seats, and compare it with your recurring infrastructure and staff estimates over the same period.

Do Penpot's paid cloud plans change the cost comparison?

Yes, because they are a third option between Figma and self-hosting. Penpot's pricing page, as read in October 2026, lists Professional at $0, Unlimited at $7 per editor per month capped at $175 per month, Enterprise at $25 per member per month, and a Private Server at $50k per year. These are hosted subscriptions, so self-hosting avoids them but moves infrastructure and staff costs onto your team. A Private Server plan may suit an organization that wants a dedicated instance without operating it, but you should confirm what it includes, who operates it and where it is hosted before comparing it with a self-hosted deployment. Check current figures on the Penpot pricing page before you rely on them.

Does self-hosting Penpot solve Figma's data residency gaps?

It can, because a self-hosted instance keeps design files, comments, accounts and previews in infrastructure you choose. Figma's data residency solution is available only on the Enterprise plan, and Figma's help center says comments, file names, plugins, fonts and preview thumbnails are not hosted in the chosen region. Self-hosting removes that split, but residency is still your responsibility. Confirm the physical location of the servers, backups, object storage and logs, and who can access them. DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications. Independent auditors and certification bodies perform those assessments.

How DeployOpen scopes a fixed-price Penpot implementation

DeployOpen plans, implements, hardens, backs up and documents self-hosted Penpot inside your own cloud accounts, data centers or air-gapped networks. Engagements are fixed-scope, so the cost comparison in this guide turns into a written scope, deliverables and timeline agreed before work starts.

How we scope

  • Inventory which Figma teams, files, libraries and plugins are in use before any cost comparison is finalized.
  • Agree in writing which Penpot deployment method, such as Docker Compose or Helm, fits your environment.
  • Confirm the PostgreSQL version, Valkey, storage backend and login method your identity setup requires.

How we build

  • Deploy Penpot, PostgreSQL, Valkey and S3-compatible or filesystem storage inside your own infrastructure.
  • Configure email and password, OAuth, OpenID Connect or LDAP login according to the agreed scope.
  • Run test migrations of sample Figma files with the Penpot exporter plugin and record which elements need manual rework.

How we hand over

  • Document the deployment, configuration keys, backup routines and the update procedure for your own staff.
  • Deliver a fidelity checklist covering components, variants, auto layout, text and the prototyping gaps.
  • Provide a handover session so your team can operate the instance and recognize the points that need escalation.

How we support

  • Offer ongoing support, upgrades and continuous testing as a retainer after the initial handover.
  • Schedule Penpot version upgrades in your maintenance windows, with backups taken before each change.
  • Ask any quote to separate one-time implementation work from recurring retainer and infrastructure costs.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.