Bring Your Own (BYO): Create a Package

Overview

A BYO (Build Your Own) package is a platform extension that enables the integration of custom functionality in Unqork. BYO packages let developers implement reusable, configurable logic that enhances the Designer experience and runtime behavior.

The Bring Your Own framework is intended for developers who have a strong understanding of the Unqork Designer Platform and JavaScript JavaScript is an object-oriented computer programming language. It is most-commonly used for interactive effects in the browser..

Package Structure

A BYO package must be bundled as a .tar.gz archive and include specific files to interface with the Unqork platform.

Each package supports a single JavaScript entry point (index.js). Future support is planned for code-splitting and multiple chunks.

Required Package Structure

Copy
myPackage.tar.gz
  ├── manifest.json
  └── index.js

Create the Archive Using CLI

Copy
tar -cvzf myPackage.tar.gz manifest.json index.js

Understanding the Package Contents

The .tar.gz package must contain the following files:

manifest.json

The manifest.json file defines the metadata for the package. It describes the custom functionality and provides necessary information for the Unqork Designer Platform to register, render, and configure the components correctly.

The manifest file serves as the contract between your custom implementation and the Unqork platform.

Learn more about the Manifest Schema in our BYO: Manifest JSON Schema article.

index.js (Main Entry File)

The index.js file is the main implementation entry point. It must conform to the following requirements:

Unqork recommends using a modern bundler, like Vite, to ensure the package is compiled and structured correctly for browser-based consumption.

Summary of BYO Packaging Requirements

Now that you understand the structure and contents of a BYO package, verify your package meets the Unqork's BYO requirements listed below:

Requirement Details

Archive Format

.tar.gz

Required Files

manifest.json, index.js

Entry File Format

ES Module (.js with named exports)

Compatibility Target

es2020

Supported Language

JavaScript

Export Convention

Named exports aligned with manifest metadata