Rendering Design Software in the Browser at Penpot
SVG is too slow for complex design tools. Penpot is replacing it with a custom renderer built on Rust and WebAssembly for massive performance gains.
#1about 4 minutes
Moving from SVG to canvas for better performance
Penpot's new rendering engine replaces SVG with a canvas-based approach to solve performance bottlenecks in large, complex design files.
#2about 4 minutes
Optimizing canvas rendering with a tiling system
The new engine uses a custom tiling system with viewport culling and tile caching to efficiently render only what's visible on screen.
#3about 3 minutes
Managing application state with Rust and WebAssembly
State is managed manually outside the DOM by serializing data into a binary format and passing it to a Rust backend via WebAssembly.
#4about 10 minutes
Implementing advanced design features like multiple strokes
Replicating complex features like multiple text strokes requires creative solutions using blend modes and surfaces, as they are not standard in the Skia library.
#5about 10 minutes
Solving text interaction and emoji rendering challenges
The engine tackles difficult text rendering problems like selection and glyph placement, using a consistent font fallback for emojis to avoid cross-platform inconsistencies.
#6about 9 minutes
Building an open source renderer with a new tech stack
The team is learning Rust and WebAssembly together while building the new renderer in the open, documenting their progress publicly for community contribution.
#7about 11 minutes
Scaling collaboration and improving developer tooling
The client-side rendering architecture ensures performance doesn't degrade with more collaborators, and better browser performance tooling would further aid development.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
09:04 MIN
Penpot's technical stack and contribution model
Building Collaborative Open Source tools for Developers and Designers - Pablo Ruiz-Muzquiz from Penpot
06:01 MIN
Bringing designers into the open source ecosystem
Building Collaborative Open Source tools for Developers and Designers - Pablo Ruiz-Muzquiz from Penpot
04:09 MIN
Bridging paradigms with declarative design in a tool
Building Collaborative Open Source tools for Developers and Designers - Pablo Ruiz-Muzquiz from Penpot
02:43 MIN
Overcoming the technical challenges of a web-based tool
Fireside Chat with Kris Rasmussen, CTO at Figma
03:26 MIN
Bridging the gap between designers and developers
WeAreDevelopers LIVE - Is Software Ever Truly Accessible?
03:00 MIN
Solving the historic designer and developer collaboration gap
Building Collaborative Open Source tools for Developers and Designers - Pablo Ruiz-Muzquiz from Penpot
12:31 MIN
Discussing modern web development news and trends
WeAreDevelopers LIVE - GraalVM in action, Static Analysis insights and more
02:23 MIN
Understanding client-side rendering and its trade-offs
Coffee with Developers is Now Available as an Audio PodcastFor the past few years, we’ve had the privilege of meeting fascinating developers and tech professionals from around the world through our Coffee with Developers episodes. While all of the episodes are available in their original video format on our ...
Chris Heilmann
Micro Components - a different approach to a simpler component-based webThere has been a lot of heated discussion lately in the web community about component based development. One side argued that Web Components are a standard we should follow whereas others complained that they still lag behind in what frameworks offer...
The State of HTML 2024: What can we learn from it?The results of the State of HTML 2024 survey are in! Though the name suggests it’s HTML-only, the survey focuses on the web platform in a more general sense, giving us some fascinating insights into not only the state of the web, but also some sense ...
From learning to earning
Jobs that call for the skills explored in this talk.