Core concepts

Extension Packages

An extension package defines an extension to Lucid's products. It includes all the frontend code for any editor extensions in the package, any shape libraries your extension provides, and specifies all data connectors and OAuth providers your extension will leverage.

Packages are uploaded and managed in the developer portal. You can learn more about how extension packages are structured here.

Editor Extensions

An editor extension is custom JavaScript code you write that gets executed in a Lucid product. Editor extensions use the lucid-extension-sdk npm package to interact with the UI of the application and the content currently loaded in a Lucid document.

Editor extensions can add new menu items to Lucid's menus, new blocks with unique functionality to the canvas, and new interactions to existing elements in Lucid documents. Editor extensions can also leverage OAuth APIs and data connectors to bring external data into Lucid documents. You can learn more about how to create editor extensions here.

Shape Libraries

A shape library is a collection of custom shapes you create that can be used in Lucid documents. Your shapes can leverage data, conditional formatting, formulas, and much more to create intelligent, interactive experiences. Learn more about custom shapes and how to create them here. Learn more about adding custom shape libraries to your extension here.

Data Connectors

A data connector is an API you create that editor extensions in your package can use to fetch and manage external data. In its simplest form, a data connector could just be a single endpoint that fetches and returns some data from an external API. For more complicated integrations, data connectors can post data back to documents asynchronously. Data connectors can also implement specific endpoints for things like:

  • Propogating changes to data made in Lucid's editors back to the data source.
  • Automatically fetching changes to data made in data sources so Lucid documents have the most recent version.
  • Setting up and managing webhook relationships with data sources to track data changes made ouside of Lucid.

A data connector must provide a public URL that Lucid's servers can make requests to. Learn more about building data connectors here.