Figma in the Professional plan costs $16 per month for a full editor seat with annual billing, and $20 with monthly billing. That's about $15 per month for each person designing. A team of five designers pays roughly $73 per month, or about $878 per year, and this amount increases with each new editor. Penpot is an open source interface design and prototyping editor that does the same thing in the browser, but when installed on your own server it doesn't charge per seat. Below is a complete guide: what Penpot is, when it can truly replace Figma, when it can't, how many resources it needs, and how to set it up on Saplo step by step.
What is Penpot
Penpot is a UI/UX design tool developed by the Spanish company Kaleidos as an open source project. It works entirely inside the browser, just like Figma, so the designer doesn’t need to install anything on their computer. The key technical difference: Penpot saves projects in open web standards, namely SVG, and the layout of elements is based on CSS Flexbox and CSS Grid. This means the design is closer to what the developer will later write in code.
What you get in practice:
- wireframes and screen designs, with layers, groups, masks, text, and vector graphics,
- shared components and libraries, like buttons, form fields, and cards defined once and used across many files,
- Flex and Grid layouts that behave like their CSS counterparts, so responsive design isn’t just a drawing,
- clickable prototypes with transitions between screens, for showing clients or user testing,
- the Inspect tab, where developers can read measurements, colors, spacing, and get ready-to-use CSS or SVG code,
- export to PNG, PDF, and SVG, handled by a separate export container,
- live collaborative editing, where multiple people work on the same file simultaneously, with visible cursors and comments.
A full app description and the install button are available on the Penpot page in the Saplo app catalog.
Penpot or Figma: an honest comparison
Penpot is not a one-to-one clone of Figma and there's no point in pretending it is. Before moving your team, check if your work fits within what Penpot does well.
| Criterion | Figma (Professional) | Penpot on Saplo |
|---|---|---|
| Price | about $15 per month for each editor | fixed Box price, no seat fees |
| Number of editors | each paid separately | unlimited, only limited by server memory |
| Where projects are stored | Figma's cloud, servers in the USA | Your Box in a data center in Germany |
| File format | closed Figma format | open standards, SVG and CSS |
| Layout of elements | Auto Layout (proprietary model) | Flex and Grid compatible with CSS |
| Live collaborative editing | yes | yes |
| Prototypes | advanced, with animations | basic and moderately advanced |
| Plugins | huge ecosystem | smaller but growing |
| AI features | built-in, paid with credits | not included in the standard installation |
When Penpot is more than enough: you design websites and web apps, create mockups for clients, build a component library, hand over designs to developers. This covers most of the work in small agencies and product teams.
When to stick with Figma: your team heavily relies on specific plugins from Figma's ecosystem, creates very complex prototypes with micro animations, or the client requires files in .fig format. Penpot does not open Figma files directly. Migrating existing projects is a separate effort, so it makes sense to start new projects in Penpot and finish older ones where they were created.
How much does it cost: a calculation with concrete numbers
Figma charges per user. Box on Saplo charges per server. With just one designer, the difference is small, but it grows with the team.
| Team | Figma Professional annually | Penpot on Box L annually |
|---|---|---|
| 1 designer | about $176 | $146 |
| 3 designers | about $527 | $146 |
| 5 designers | about $878 | $146 |
| 10 designers | about $1,756 | $317 (Box XL) |
The Figma amounts are converted from $16 per month with annual billing, using an exchange rate of about 0.27 USD per 1 local currency unit. Paying monthly makes Figma about 25% more expensive. Saplo prices are the list prices for Boxes, the first year costs the same as renewal.
There's one more thing not visible in the table: on the same Box, you can run other team tools. A shared disk, password manager, or task board alongside Penpot, with no extra charge as long as there's enough memory.
Requirements: which Box to choose
Penpot is one of the heaviest applications in the Saplo catalog. The installation consists of five Docker containers working together:
- frontend, the browser editor, the only container exposed to the outside,
- backend, which stores projects and handles collaborative editing; runs on a Java virtual machine, so it needs memory,
- exporter, which renders exports to PNG, PDF, and SVG by running a browser inside,
- PostgreSQL 15, a dedicated database just for Penpot,
- Redis, cache and queue for collaborative editing.
Hence the requirements:
- minimum 4 GB of free RAM and 15 GB of disk space,
- Box with Docker, the engine activates it automatically during installation from the catalog,
- a domain or subdomain *.saploapp.pl, which you get included in the price of every plan.
In practice, this means:
- Box S (1 GB) and Box M (2 GB) are not enough. Penpot won’t fit on them.
- Box L (6 GB RAM, 60 GB SSD, $146 per year) is a reasonable minimum for a team of a few people. There’s enough memory left for one or two lighter apps alongside, and backups from the last 7 days are included.
- Box XL (12 GB RAM, 150 GB SSD, $317 per year) is the choice when a dozen or so people are designing at once, files have hundreds of screens, or you want to keep more team tools on the same server.
You don’t purchase or configure a separate database. PostgreSQL and Redis are part of the setup and run in the same set of containers as Penpot.
Step-by-step installation
- Log in to your Saplo panel and go to the App catalog. You'll find Penpot under the tools section. Alternatively, you can start from the Penpot page and click the deploy button.
- Choose the Box where you want to install the editor. If the Box doesn't have enough free memory, the panel will notify you before installation rather than after a failed attempt.
- Specify the address. The easiest way is a subdomain like
projects.saploapp.pl. If you prefer your own domain, for exampledesign.yourcompany.com, set it during installation, and the SSL certificate will be issued automatically. - Confirm the installation. The engine installs Docker, downloads the Penpot, PostgreSQL, and Redis images, generates random passwords for the database and session key, and launches all five containers.
- Wait. The three Penpot images together weigh over a gigabyte, so the initial download on a fresh Box takes longer than with lightweight apps. The installation finishes only when the editor actually responds at your address.
- When the status changes to running, open the address in your browser.
First Launch: Account and Team
Penpot does not have a pre-generated single administrator password. You create your account yourself the first time you visit the site:
- On the login screen, choose Create an account.
- Enter your email, password, and name. Email confirmation is disabled in this installation, so your account is active immediately.
- Penpot automatically creates your first team. Within the team, you create projects, and within projects, files with screens.
Installation details, including container names and commands to view logs, are saved in the PENPOT-SETUP.txt file in the app directory on the Box. The Saplo panel will show you its contents whenever you need it.
Important at registration: since the form is open and email confirmation is disabled, anyone who knows the address can create an account. For a small team on a little-known subdomain this is usually not an issue. However, if the address becomes publicly known, it’s a good idea to disable registration after the whole team’s accounts are created, as explained below.
How the team works: invitations without email
Penpot sends team invitations via email. A standard Saplo installation doesn't have an email server connected, so invitation emails won't be sent. There are two options:
- simpler: each team member creates their own account under your address, and you add them to the team or share the project with them,
- complete: you connect an SMTP server, for example, a company mailbox you already have. You do this via SSH, adding the flag
enable-smtpand variablesPENPOT_SMTP_*in the filedocker-compose.ymlin the app catalog, then startdocker compose up -d. From then on, invitations, password resets, and notifications work normally.
SSH access is available in every Box from the M plan upwards, so on Box L and XL you have it immediately, along with full sudo access.
Security and Settings Worth Changing
Here are a few things you should do in your first week:
- Disable registration after setting up your team accounts. Add the
disable-registrationflag to thePENPOT_FLAGSvariable indocker-compose.ymlfor both frontend and backend, then restart the containers. You can add new members by sending invitations, provided SMTP is configured. - Use your own domain for clients. A prototype sent to a client at
projects.yourcompany.comlooks more professional than a link to someone else's cloud. - Remember backups. Box L includes 7-day backups, Box XL includes 14-day backups. Also, periodically export your most important files from Penpot to
.penpotformat to have a copy independent of the server. - Update consciously. The recipe uses the latest Penpot images. Before any major update, check the project's changelog and make sure you have a fresh backup.
Your clients' projects never leave your Box or reach servers in the United States. For agencies that sign confidentiality agreements with clients or work in sensitive industries, this is often a stronger argument than price alone.
Common Issues
The editor loads slowly on the first visit. The Java backend warms up after the containers start. The first opening after a restart can be slow, but the following ones are fast.
Export to PDF or PNG either doesn't work or takes a very long time. The exporter launches a browser internally and uses a lot of memory. If many applications run simultaneously on your Box, it may run out of RAM. Check the exporter container logs, and if memory shortages persist, consider upgrading to a higher plan.
The team invitation didn't arrive. This is expected behavior because Penpot doesn't send emails without SMTP configured. Either set up SMTP or ask the person to create an account and add them manually.
I can't log in after changing the address. Penpot saves its public address in its configuration. Changing the domain after installation requires updating the PENPOT_PUBLIC_URI variable and restarting the containers. The easiest way is to select the final address from the start.
Summary
Penpot makes the most sense where Figma hurts the most: with a team of several designers, each costing you separately every month. On Box L for $146 per year, you can set up an editor for your entire team, with live collaborative editing, component libraries, prototypes, and exports, while keeping your projects on your own server. Before moving your whole team, create one new project in Penpot and see if the lack of specific Figma plugins bothers you. If not, the numbers speak for themselves.
Start at the Penpot page in the Saplo app catalog, and if you don't have a Box yet, compare plans in the Price list.
- #Self-hosting
- #Figma
- #Penpot
- #Guide
- #UI design
