Skip to main content
Learn how to create your own components and publish them to a custom registry.

Component structure

A component is defined by the ComponentDefinition interface:

Creating a component

1

Define the component

Create a new component definition:
2

Add to local registry

For testing, add your component to the local registry manifest:
3

Test locally

Test your component by installing it:

Publishing a registry

1

Create registry index

Build a registry index file (index.json):
2

Host component files

Place component files at the paths specified in the index:
3

Deploy to hosting

Upload your registry to static hosting:
4

Configure users

Users point to your registry in helios.config.json:

Registry format

The registry supports two formats:
Files are fetched on-demand when installing a component.

Legacy format

All file content is included inline. Not recommended for large registries.

Authentication

For private registries, set an environment variable:
The CLI sends this as a Bearer token:

Best practices

  • Keep components focused - One component per responsibility
  • Document props - Use TypeScript interfaces and JSDoc comments
  • Minimize dependencies - Fewer npm packages = easier installation
  • Use registry dependencies - Reuse common utilities like use-video-frame
  • Test thoroughly - Install components in a real project before publishing
  • Version carefully - Consider semantic versioning for breaking changes

Example registry structure

Timeout and fallback

The registry client has a 5-second timeout. If fetching fails:
  • The CLI falls back to the local built-in registry
  • Users see a warning but can still use default components
Ensure your registry hosting is reliable and fast.

Multi-framework support

Publish variants for different frameworks:
The CLI automatically selects the correct variant based on the user’s configured framework.