Sail Hub Docs Sail Hub

Sharing layouts

A finished layout is a zip that anyone can install like any other plugin.

Package it#

  1. Bump version in plugin.json for every update, so Sail can offer it to people who have the old one.
  2. Add a preview.png and point layout.preview at it. Library Layouts doesn't show it yet, but it's handy for your Sail Hub page too.
  3. Zip the folder itself, so the zip holds my-layout/plugin.json.
  4. Test the zip with Import Plugin in the Plugin Manager, with developer mode off.

Put it on Sail Hub#

Upload the zip to Sail Hub as a plugin, with a screenshot. The upload form shows your layout's requirements from plugin.json; Library Layouts should already be there. When someone installs it, Sail runs the same checks, offers Library Layouts if they don't have it (thanks to your requires entry), and adds your layout to the Layout list in Library Layouts' settings.

Keep it working#

  • Use the region names and listed ids rather than other parts of Sail's markup, which can change between versions.
  • Keep contract at the version you tested with. When a newer contract comes out, Library Layouts keeps showing older layouts.

Last updated 21 October 2026