Improved

Improved App Homepage Canvas

Homepage Canvas: Reset, Improved Initialization, and New Manifest Schema

We've made significant improvements to the Homepage Canvas to address two longstanding pain points: apps had no reliable way to know when to render the Canvas, and users had no way to recover when a Canvas became stuck or unresponsive.

What's new

Reset capability

Users can now reset a Homepage Canvas directly from the Canvas overflow menu. Resetting clears the current Canvas state and triggers a fresh canvas.created webhook, prompting the app to reinitialize, all without requiring any action from the app developer beyond handling that webhook.

The Canvas retains its original canvas_id after a reset for auditing continuity.

"Reset" feature on Homepage Canvas

Platform-managed Canvas creation

The Homepage Canvas now follows the same initialization pattern as other canvas types. When a user clicks "Create," the platform creates the canvas instance and dispatches a canvas.created webhook with a pre-generated canvas_id. This replaces the previous workaround where developers relied on the unrelated Activate feature to trigger initialization.

New manifest schema

We're introducing a new way to declare homepage canvases in your app manifest. Instead of type: APP_HOMEPAGE, use type: CANVAS with locations: [APP_HOME]:

features:
  - name: Homepage Canvas
    id: homepage_canvas
    type: CANVAS
    locations: [APP_HOME]
📘

The APP_HOME location cannot be used in combination with another location.

Upgrade to the new Homepage Canvas

The legacy APP_HOMEPAGE feature type continues to be supported during the migration period, but new manifests must use the new schema . Passing APP_HOMEPAGE on a new manifest will throw an InvalidManifestError.

Action required for apps already using type: CANVAS

❗️

If you update your app to use the new Homepage Canvas, you must also update your app code to handle the difference between APP_HOME and other existing Canvas locations. We recommend introducing separate handling logic for webhooks triggered from the Homepage. Otherwise, your existing Canvases will break.