Canva's users love to share their content with the world. This page contains guidelines for creating publish extensions that seamlessly bridge the gap between Canva and third-party platforms.
Choose the best layout
The layout of a publish extension has a big impact on the behavior and appearance of the extension. Choosing the most appropriate layout ensures the best user experience. To learn about the available layouts (and when to use them), refer to Layouts.
Upload the user's design to the destination platform
When a user publishes their design, Canva provides the extension with URLs of the published assets. An extension must upload these assets to the destination platform and not simply link to the assets. This is because the asset's URLs expire after a short period of time.
Correctly configure the extension
You can configure a publish extension via the Developer Portal. It's important that this configuration lines up with the behavior of the destination platform. In particular, ensure that:
The destination platform accepts the published designs in the configured formats.
If a user publishes multiple pages, each page of the design is uploaded to the destination platform.
Allow users to search for containers
If a publish extension uses the Flat list or Nested list layout, add a search field to the extension to let users search for containers. This is more efficient than requiring users to navigate a list of options.
Provide a link to the published design
When a user publishes a design, the extension must provide a URL that allows the user to view the design in the context of the destination platform. For example, if a user publishes a design to Twitter, they should see a link to their tweet.
Tell users what to do next
If the destination platform expects further action, the URL provided by the extension should take the user to where they can complete that action. For example, a website creation tool that lets users choose where to insert their published design should take the user to a page where the user can make that choice.
Show the user's message
If the extension requires users to provide a message, the destination platform should use that message in a meaningful way. In other words, don't require users to provide a message for no particular reason.