🧠

Key Concepts

Kinds of Bricks

The PixieBrix ecosystem is based on sharable/combinable components that we call "bricks". Each brick has a unique identifier and version

Foundations (aka Extension Points)

Foundations are where users can attach functionality. Examples: information panels, menu items/buttons, and triggers.

Blocks

Blocks are functions that you can wire together and attach to an extension point. You can also create composite blocks that behave as a single block

  • Readers: read information from a document. Current Support: HTML via JQuery, EmberJS, React, window variables. Each Extension Point has a default reader it provides.
  • Effects: take an input and perform a side effect. Examples: append a row to spreadsheet, send a message to Slack, open a new tab with a Google search.
  • Transforms: take an input and produce an output. Example: call an API, run a jq transform, extract data using a regular expression
  • Renderers: a transform that returns HTML, e.g., to render in a panel extension point. Examples: renderer markdown, a data table

📖

You can find a list of built-in bricks on the

developer documentation page, or in the References tab of the Workshop editor

Services/Integrations

Re-usable resources and configuration that can also be used to authenticate requests to APIs. By creating a PixieBrix account, you can share service configurations with your team. Examples: an API credential, a Google Sheet

Blueprints (aka Recipes)

Collections of extension point + block combinations that a user can install together. Example: a collection of context menu definitions for running searches on different sites

Input/Output Schemas

PixieBrix uses JSON Schema for specifying the shapes of inputs and outputs. In addition to serving as documentation, having a schema facilitates detecting which bricks are misbehaving.

If you're coming from the Javascript world, these are similar to React's prop-types or schema validators such as Yup. In the REST API world, these are similar to an OpenAPI/Swagger specification

📖

You can learn more about using JSON Schema with PixieBrix on the

developer documentation page