Types of ExtensibilityWhat are the different modes of integration that a developer might want to interact with.

APIs

Run our code without reading it, and interface directly via APIs

    Hypermedia Peer-to-Peer: gRPC libp2p

    Hypermedia HTTPS API

SDK

Our SDK helps a user manage keys, identity workflows, signing, and type-safe interactions with Hypermedia APIs

Currently only in TS/JS, other languages will come soon.

Services

Run a custom server which can maintain its own state

Examples: Notification Server, Agent Server, Hosting Service

Supports a Complete Custom Application or UI

This doesn't require a lot of friction for the dev because they can just fork our example apps

Tools

The agent system has a tools abstraction where you can specify the schema of the input for your tool and the output shape. The agent is able to write these tools themself, and

Block UI

For existing block types, a developer wants to build a custom UI for

Custom Block

New block types, a developer wants a custom type for the block, a custom

Custom Attribute UI

In the attribute editor, provide a custom UI for certain data

Custom Document/Resource UI

Create a new page which saves data to a specific document

Custom Page

Custom "App" page, where everything under the site header will be custom UI

Theming, Look and Feel

Customize visuals of your space/doc

Custom Indexer

Run some function on a set of dependencies that will save to an custom index field for optimized querying

UI Modalities

Sometimes a developer wants to use their own CSS+HTML, and will expect a regular JS interface. This can generally be accomplished with an iframe.

But this has impacts on performance, security, UI consistency, and native cross-platform support.

So we should also support a template system, our own built-in UI toolkit. So a plugin won't know how to render the perfect dropdown, it just uses our predefined components.

Do you like what you are reading? Subscribe to receive updates.

Unsubscribe anytime