There's a rich ecosystem of user-developed plugins outside of our official integrations, and it's very simple to share and utilize these handcrafted private plugins.
We've developed a standard ZIP file format that plugin developers (dare we say, artisans) can follow. It conveniently combines plugin settings, custom fields, and markup into one archive.
Exporting a private plugin
Exporting is as simple as clicking Export on the settings page for the specific plugin. A ZIP file will be downloaded with the entire contents of your plugin, including its settings, custom fields, and markup.
Importing a private plugin
On the Private Plugin settings page, simply click Import new and select the ZIP file to import. A new plugin will automatically be created and added to your playlist.
Plugin ZIP file contents
The ZIP archive of a private plugin is a flat list of files (no subdirectories). An export contains only the files your plugin uses, for example:
settings.yml
full.liquid
half_horizontal.liquid
half_vertical.liquid
quadrant.liquid
shared.liquid
transform.js # or .py, .rb, .php
settings.yml is required.
The .liquid files correspond to the individual Liquid HTML templates for each viewport, and shared.liquid holds code they all share. The maximum size of each file is 100 KB.
settings.yml
See this article for details on configuring custom_fields.
---
# required:
name: My Awesome Plugin
strategy: polling # polling | webhook | static | async_polling | plugin_merge | none
refresh_interval: 60 # minutes; 15 | 30 | 60 | 120 | 240 | 360 | 480 | 720 | 1440
# polling strategy only:
polling_url: https://example.com
polling_headers: ''
polling_verb: GET # GET | POST
# static strategy only:
static_data: '{"foo": "bar"}' # JSON string
# generic options:
no_screen_padding: 'no' # 'no' | 'yes' (quotes are necessary!)
dark_mode: 'no' # 'no' | 'yes' (quotes are necessary!)
# custom plugin form fields (optional, see docs):
custom_fields:
- keyname: units
name: Units
field_type: select
options:
- Metric
- Imperial
Related


