If you’re a developer who has built Figma or FigJam plugins before, there are a few key differences to understand between plugins and widgets.
|Needs to be installed by each user in a file.||Anyone in a file can insert it onto the canvas, then it’s available for use by all users.|
|Users primarily interact with them outside of the canvas, via off-canvas iframes.||Users primarily interact with them directly on the canvas, like any other native object.|
Widgets can create off-canvas iframes, but the entry points for these are on the widget itself.
|Run specifically for the user who is running it.||Widgets are collaborative and multiplayer——everyone in a file sees the same instance of a widget.|
|Only one per user can be open at a time.||An unlimited number of widgets can be in a file and ready to be interacted with, like any other object on the canvas.|
Widgets are better for: collaborative use cases (e.g. voting) or single-player use cases that require on-canvas interactions (e.g. diagramming). Plugins are better for: single-player automation use cases, use cases related to setting up the activities in a file, or single-player import/export (e.g. using content libraries).