Why Publisher is gone — and what it means
Microsoft announced the end of Publisher in Microsoft 365 in July 2024, with a removal date of October 13, 2026, aligned with the end of extended support for Office 2019. The desktop application continues to work for perpetual licenses, but it no longer receives updates and is no longer available for purchase in current Microsoft 365 plans.
In practice, the teams affected are those that produced lightweight print materials — A5 flyers, event programs, printed newsletters, business cards — in a Microsoft environment without an Adobe budget. Publisher occupied this niche because it was included in certain Office plans, easy to learn, and capable of producing a print-ready PDF without outsourcing.
The disappearance creates pressure for three types of organizations: associations whose IT contact is a volunteer, communication departments of mid-size companies that avoid the Adobe suite for cost or software policy reasons, and small print agencies that work for these clients and need a workflow without mandatory cloud accounts.
What Penpot covers — and what it does not
- Flyer and poster composition: Penpot handles layers, vector shapes, import of local TTF/OTF fonts, and layout grids. An A4 or A5 flyer can be composed directly with custom guides set in millimeters.
- Reusable templates: Penpot's shared libraries let you store components (header, footer, logo) accessible to the whole team on the same instance.
- PDF export: Penpot exports a flat PDF (no layers) in RGB sRGB. For large-format or offset printing, the absence of ICC profile management and CMYK color separation is a real limitation — see the dedicated section.
- Real-time collaboration: multiple people can work simultaneously on the same file, like an online spreadsheet, without sending files by email.
- Import of .pub files: Penpot does not read the .pub format. No recognized automatic migration tool exists. Migration means recreating layouts, not importing them.
- Native CMYK management: Penpot works entirely in RGB. ICC color profiles are not applied on export. For demanding offset printing, a conversion step via Scribus or a print service provider remains necessary.
- Multi-page layout templates for long documents: Penpot supports multiple pages, but without the paragraph styles and automatic text flow tools found in InDesign or even Publisher for booklets spanning several dozen pages.
VPS requirements for hosting Penpot
Penpot is deployed via Docker Compose. The stack includes three main services: the frontend (Nginx + SPA), the backend (Clojure/JVM), and the exporter (Node.js, used for PDF and PNG rendering). A fourth service, PostgreSQL, stores the data.
Minimum recommended configuration for a team of 5 to 15 people: 4 GB RAM (the JVM backend starts at ~600 MB but climbs to 1.5 GB under load), 2 vCPU, and 20 GB storage for uploaded assets. In practice, a 4 GB RAM VPS is adequate for an association or small agency; move to 8 GB once the team exceeds fifteen people or asset files become large.
The domain must point to the VPS before starting the containers: Penpot uses absolute URLs for assets and email invitations, and the value is read at first startup from the PENPOT_PUBLIC_URI variable.
The article [self-host-penpot-vps](/blog/self-host-penpot-vps) covers the full Docker Compose procedure step by step, including environment variables and SMTP configuration.
Publisher vs Penpot — 7 criteria
Scroll the table
| Criterion | Microsoft Publisher | Self-hosted Penpot |
|---|---|---|
| Flyers and posters | Yes, built-in templates, native A4/A5 format | Yes, with custom guides in mm |
| Printed newsletters | Yes, columns and automatic text flow | Partial: manual columns, no automatic text flow |
| Large-format posters | Yes, up to 584 × 584 cm | Yes, but PDF export is RGB only (no CMYK) |
| Supported formats | Import Word, TIFF/EPS images; export PDF, XPS | Import SVG, raster images; export PDF, SVG, PNG, WEBP |
| Collaboration | Manual file sharing (OneDrive) | Real-time multi-user on the same instance |
| Learning curve | Low for Office users | Moderate: interface similar to Figma, different from Publisher |
| Cost | Included in some Microsoft 365 plans (removed October 2026) | Free (AGPL-3.0) + VPS cost |
Getting started with self-hosted Penpot in 6 steps
Choose a VPS with at least 4 GB of RAM and Docker installed. The ServOrbit Penpot template pre-configures Docker Compose, the essential environment variables, and the reverse proxy.
Point your subdomain (
penpot.your-domain.com) to the VPS IP address via an A record in your DNS manager, before starting the containers.Retrieve the official
docker-compose.yamlfrom the Penpot repository and setPENPOT_PUBLIC_URIto the public URL of the instance. Do not start without this variable: email invitation links will be broken.Run
docker compose up -dand wait until all four services (frontend, backend, exporter, PostgreSQL) are in ahealthystate. The first startup takes 2 to 4 minutes depending on VPS performance.Create the first admin account via the instance's
/auth/registerURL. Then disable open registration if the instance is private (PENPOT_FLAGS=enable-login disable-registration).Refer to the article [self-host-penpot-vps](/blog/self-host-penpot-vps) for SMTP configuration, volume backups, and instance updates.
Organizing the workspace for print
Penpot organizes work into three levels: teams, projects, and files. For an association or agency, the recommended structure is one team per client or department, with projects corresponding to campaigns or time periods ("Back to School 2026", "Quarterly Newsletter").
Shared libraries are the central mechanism for team-based print work. They store brand colors, text styles (headings, body, captions), logos in SVG, and recurring components (photo frames, address blocks). A change in the library propagates automatically to all files that inherit from it — avoiding manual updates to twenty flyers when the logo changes.
For recurring document templates (A5 portrait flyer, 40×60 cm poster, 85×55 mm business card), create a "Templates" file in each project and duplicate pages from that file. Dimensions can be set in millimeters in the page properties (width/height in mm, indicative resolution of 300 dpi for PNG export).
Exporting from Penpot: available formats
Penpot offers four export formats: PDF, SVG, PNG, and WEBP. Each format corresponds to a different use case.
PDF is generated by the exporter service (Node.js/Playwright). It produces a paginated, flat PDF (no layers) in RGB sRGB color profile. For offset or screen printing, this format may suffice if the printer accepts RGB — which is increasingly common for short digital print runs. For demanding offset printing, a downstream CMYK conversion remains necessary (Ghostscript, Acrobat, or the print service provider).
SVG is Penpot's native vector output format. It is suitable for logos, pictograms, and brand elements to be transmitted to a printer or integrated into another tool.
PNG at 2× or 4× the nominal resolution is used for previews and web exports. For print use, set the base resolution in millimeters and multiply to reach 300 dpi.
WEBP is reserved for digital uses (web, social media).
What Penpot does not yet do
An honest look at Penpot's current limitations for print work:
No native CMYK management. Penpot works entirely in RGB. There is no CMYK color space, no ICC profile application on export, no color separation. For high-fidelity offset printing, this is a structural limitation.
No automatic text flow between frames. Publisher allowed linking text boxes so content would overflow from one frame to another automatically. Penpot does not yet offer this. For long documents (booklets of 8 pages or more), Scribus remains more appropriate.
No import of .pub files. There is no recognized, maintained .pub-to-Penpot converter. Migration requires recreating templates from scratch — which for teams with dozens of templates represents a real undertaking.
No mail merge. Publisher included a mail merge tool for personalizing documents in series (named invitation cards, labels). Penpot has no native equivalent.
These gaps are documented in the Penpot public repository. Some (CMYK, text flow) appear in the community roadmap without a confirmed delivery date.
Production configuration: TLS, backups, and multi-user setup
Three points to address before opening the instance to a team:
TLS with nginx as a reverse proxy. Penpot listens by default on port 9001 (frontend) and 6060 (backend). Place an nginx reverse proxy in front and obtain a Let's Encrypt certificate via Certbot or Caddy. The PENPOT_PUBLIC_URI variable must use https:// — otherwise internal assets will not load correctly.
Docker volume backups. Penpot stores its data in two volumes: the PostgreSQL volume (schema and metadata) and the assets volume (uploaded files). A daily backup with docker run --rm -v penpot_postgres_v15:/data -v /backup:/backup alpine tar czf /backup/penpot-postgres-$(date +%F).tar.gz /data on each volume is sufficient for non-critical use. Test restoration before putting the instance into production.
User management. By default, Penpot allows open registration via /auth/register. For a private instance, disable this option with the disable-registration flag and invite members by email from the admin interface. The admin role is distinct from the owner role of a team — a user can administer the instance without accessing team files.
Troubleshooting — the 3 most common errors at first startup
1. The frontend shows "Cannot connect to server."
Most common cause: PENPOT_PUBLIC_URI points to localhost or an internal IP. Penpot uses it to build asset URLs in the browser — if the value is unreachable from the client, the connection fails. Fix the variable, restart with docker compose up -d, clear the browser cache.
2. Email invitations are not sent.
Penpot requires an SMTP server configured via SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, and PENPOT_SMTP_ENABLED=true. Without a valid SMTP setup, invitations are created in the database but no email is sent. Test with docker compose logs penpot-backend | grep smtp.
3. The exporter service does not start.
The exporter service uses Playwright (headless Chromium). It requires system libraries libnss3, libatk-bridge2.0-0, and libgbm1. On a minimal Debian image, these packages may be absent inside the container — this is a known issue documented in Penpot's issue tracker. Use the official penpotapp/exporter image without replacing it with a custom image.
Next steps and resources
To go further after the initial deployment:
Read the article [penpot-alternative-figma-self-hosted-design-agence](/blog/penpot-alternative-figma-self-hosted-design-agence) for Penpot's positioning relative to Figma and web agency use cases — distinct from the print use case covered here.
The official Penpot documentation (help.penpot.app) covers shared libraries, components, and team management. The community forum (community.penpot.app) documents frequent configuration issues.
For teams that also produce long documents (annual reports, catalogs), Scribus remains the open-source reference with native CMYK management and text flow. The two tools coexist without conflict: Penpot for rapid composition of lightweight print materials and collaboration, Scribus for complex documents requiring a rigorous color management chain.
If your team is still deciding on VPS resources or configuration, the ServOrbit Penpot template deploys the stack in minutes with pre-configured variables.