--- title: "Bring Your Own (BYO): Create a Package" slug: "bring-your-own-byo-create-a-package" updated: 2025-09-26T06:25:08Z published: 2025-09-26T06:25:08Z canonical: "docs.unqork.io/bring-your-own-byo-create-a-package" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.unqork.io/llms.txt > Use this file to discover all available pages before exploring further. # 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. > [!WARNING] > The Bring Your Own framework is intended for developers who have a strong understanding of the Unqork Designer Platform and JavaScript. ## Package Structure A BYO package must be bundled as a `.tar.gz` archive and include specific files to interface with the Unqork platform. > [!NOTE] > Each package supports a single JavaScript entry point `(index.js)`. Future support is planned for code-splitting and multiple chunks. ### Required Package Structure ```plaintext myPackage.tar.gz  ├── manifest.json  └── index.js ``` ### Create the Archive Using CLI ```plaintext 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](/v1/docs/bring-your-own-byo-understanding-the-manifestjson-file) article. ### index.js (Main Entry File) The `index.js` file is the main implementation entry point. It must conform to the following requirements: - Must be written in JavaScript. - Must use ES Module (ESM) format. The CommonJS and UMD formats are not supported. - Must include named exports that match the keys defined in the `manifest.json`. - Must be compatible with [ES2020](https://www.w3schools.com/js/js_2020.asp) to ensure cross-browser support. > [!TIP] > Unqork recommends using a modern bundler, like [Vite](https://vite.dev/config/build-options#build-lib), 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 | ## Resources ### [Bring Your Own (BYO) Framework Landing Page](/v1/docs/bring-your-own-byo-framework-landingpage) Find all the resources needed to build your own components here. ### [Introduction to the Bring Your Own (BYO) Framework](/v1/docs/introduction-to-the-bring-your-own-byo-framework) Get started building your own custom assets, including components, events, and operations. ### [Understanding the manifest.json File](/v1/docs/bring-your-own-byo-understanding-the-manifestjson-file) Learn about the file's specification, component and event definitions. ### [Understanding the BYO Runtime Engine API](/v1/docs/bring-your-own-byo-understanding-runtime-engine-api) Discover the interface between your custom BYO components and the Unqork platform. ### [Custom Component](/v1/docs/bring-your-own-byo-custom-component) Understand the state, interface, and events of a custom component. ### [Custom Component SDK](/v1/docs/bring-your-own-byo-component-sdk-software-development-kit) Extend component functionality in the Unqork Designer Platform. ### [Custom Operations](/v1/docs/bring-your-own-byo-custom-operations) Learn more about creating custom operations for use in the Operations Builder.. ### [Custom Events](/v1/docs/bring-your-own-byo-custom-events) Learn more about creating custom events for use in the Operations Builder. ### [Event Payloads](/v1/docs/bring-your-own-byo-726-event-payloads) Learn more about viewing and using event payloads with the Operations Builder. ### [BYO Implementation Examples](/v1/docs/bring-your-own-byo-726-implementation-examples) Discover examples of component implementation using the Unqork Designer Platform. ### [BYO Best Practices](/v1/docs/best-practices-bring-your-own-byo-framework) Learn about best practices for implementing and using BYO assets. ### [BYO General FAQ](/v1/docs/bring-your-own-byo-general-faq-frequently-asked-questions) Learn about the Bring Your Own Framework and discover frequently asked questions. JavaScript is an object-oriented computer programming language. It is most-commonly used for interactive effects in the browser.