Penpot Desktop: Looking for a new developer

What’s Happening

As of April 23rd this year, SudoVanilla has made major changes to how things work in it’s infrastructure and development as part of it’s major update on it’s new domain. A major decision was made at this time to it’s desktop development which includes it’s projects like Nexus Polestar, Electron templates, and most importantly Penpot Desktop.

All desktop development was dropped and deprecated. This means Penpot Desktop was no longer getting updates that is needed, even basic updates like updating Electron.

What It Needs

As mentioned in this post’s title, the project will need a new developer to come along and to develop and maintain the project in what they think fits. With the project being open source under the AGPL license, developers are welcomed to fork the project from SudoVanilla Ark. You can import from SudoVanilla Ark in GitHub, by using their Import Repository section.

What Is There To Do?

Penpot Desktop needs it’s packages to be updated to their latest versions to have access to new features that they offer, up-to-date security patches for it’s core, and more. It’ll also need to maintain it’s support for all platforms including macOS, Windows, and especially Linux. The original developer of Penpot Desktop, SudoVanilla, as the ability to transfer ownership for it’s Snap and Flathub page if needed.

I recommend setting up GitHub Actions to automate builds for all platforms and even all architectures.

Use Yarn or PNPM as the package manager, options like Bun won’t work well with Electron projects.

Developers are also welcome to rewrite the entire software to build on top of other frameworks other than Electron, but they need to make sure the webview has good performance on all platforms, which is why the project remained on Electron to use Chromium’s engine which offered great performance.

Developers Need to Keep In Mind

In a nutshell, you need to keep three things in mind: “Performance”, “Security”, and “Support”.

Performance - Penpot Desktops should carry amazing performance for everyone’s computer, whether their machine is a low end potato or a high-end powerhouse.

Learn more: https://www.electronjs.org/docs/latest/tutorial/performance

Security - Always keep the end-user secured from attacks and other factors. Penpot Desktop is mainly just a embed of Penpot with tabs. On that note, please do not use iframes to embed Penpot, as this is not allowed for security purposes. Please use webview technology instead over iframes.

Also, please do NOT load remote content that is outside of the app like images, videos, scripts, and more. All content should be bundled with the app, this also improves the end-user experience if they’re ever offline using their own instance.

For developers who may be new to Electron, do NOT ever enable nodeIntegration and turn off contextIsolation, that is a big no no!

Learn more: https://www.electronjs.org/docs/latest/tutorial/security

Support - As an Electron application, it is easy to keep support available for all platforms and architectures. Keep it this way so you don’t leave anyone out.

Make sure users always have the ability to use their own Penpot instance, as some end-users may want to use the app offline, which is a popular function of the app.

On a final note, always read the docs: https://www.electronjs.org/docs/latest/

Until Then

End-users should use Penpot in a modern web browser that supports their operating system that is updated.

Recommendation:

  • Firefox
  • Librewolf
  • Vivaldi
  • Ungoogled Chromium

Well, that’s sad news. Hope someone takes over and keep improving it, maybe penpot devs themselves? I don’t know… For now, maybe it’s time to start looking back to ideas like this one… Can be a thing for some people, sure it is for me.

1 Like

There does appear to be an option in Chromium where you can install any page as an app:

I was using Ungoogled Chromium in this case.

1 Like

Wow, that’s nice! Haven’t been using any browser other than Edge and Firefox for a while, had no Idea they’ve implemented that in there too.