:) paperlesspaper docs
Open Integration

Minimal example

Build the smallest paperlesspaper Open Integration provider with static HTML and a tiny serverless API route.

GitHubpaperlesspaper/openintegration-xkcd

3

openintegration-xkcd is a small sample provider built with static HTML and a serverless API route. You can build this shape by hand, with any static host, or with the optional Open Integration Toolkit.

A typical integration includes:

config.json (static manifest)
render.html (screenshot target)

Use this approach when the integration is mostly a single rendered page with a tiny amount of server logic.

Preview of the XKCD integration settings

Local development workflow

For the XKCD sample, the deployed install URL is https://YOURDOMAIN.COM/config.json.

In the paperlesspaper app, install the integration by pasting the public config URL into the Integration Plugin flow.

Minimal build checklist

Public URL

Your manifest URL is public and fetchable from the browser.

CORS Headers

The manifest returns correct CORS headers.

Settings and context

The render page receives the INIT payload, merges host settings with local defaults, and treats all payload values as untrusted input.

Loading state

  • the render page exposes #website-has-loading-element
  • the render page exposes #website-has-loaded only after data, fonts, and images are settled

Local checks

Preview the integration locally and check both landscape and portrait layouts. The optional toolkit can automate this with check and render.

Optional: the settings page, if present, follows the iframe message contract