# Unisphere - {{company-name|human-readable}} {{project-name|human-readable}}

## Overview

This repository is a **Unisphere workspace** for an experience named **{{project-name|human-readable}}**.

It contains everything you need to:
- Create and publish npm / JFrog packages  
- Bundle and version runtime artifacts  
- Build and deploy applications  
- Develop locally and promote changes to production  

The Unisphere workspace acts as the single entry point for the entire lifecycle — from local development, through CI/CD, and all the way to production deployment.

To better understand the ideas behind Unisphere and how it works, read more at:  
https://unisphere.kaltura.com/

---

## Prerequisites

At the moment, **deploying Unisphere experiences is available only to Kaltura employees**.

Before doing anything else, make sure your machine is properly configured to access:
- Kaltura GitHub repositories  
- Kaltura JFrog Artifactory registries  

Follow the setup guide here:  
https://unisphere.kaltura.com/docs/create/kaltura-employees/setup-machine

---

## Add the Experience to Kaltura Github Organization

Before you can deploy or activate this experience, it must be registered in Github under Kaltura Organization.

This step connects your Unisphere workspace to the relevant Kaltura infrastructure and enables CI/CD, deployment, and activation flows.

Follow the guide here:  
https://unisphere.kaltura.com/docs/create/devops/create-github-repository

---

## Create Artifacts

Unisphere allows you to create and manage different types of artifacts, including:
- Packages  
- Runtimes  
- Applications  

Each artifact type has its own role in the ecosystem, but they all live and evolve together inside this workspace.

Read more about creating artifacts here:  
https://unisphere.kaltura.com/docs/create/overview

---

## Deploy

To deploy **packages, applications, and runtimes**, follow the deployment guide:  
https://unisphere.kaltura.com/docs/create/devops/deploy

For **applications and runtimes**, deployment is only part of the process.  
After deployment, they must also be activated to become available in production.

Activation guide:  
https://unisphere.kaltura.com/docs/create/devops/activate

---

## Local Development

Unisphere provides a structured local development flow that mirrors production as closely as possible, while still keeping things fast and developer-friendly.

This includes:
- Local builds  
- Watching and rebuilding artifacts  
- Running applications in isolation or as part of a larger workspace  

Read more about local development here:  
https://unisphere.kaltura.com/docs/create/local-development

---

## Available Commands

This workspace exposes a small set of opinionated commands to help you explore, validate, and manage the experience.

### Start
Lists all available commands for each artifact in the experience, including how to build and serve runtimes, and how to spawn applications.

```bash
npm run start
```


### Info
Displays information about the current workspace, including detected artifacts, configuration, and environment details.

```bash
npm run info
```

### Check
Validates the workspace setup and verifies that all required artifacts and configurations are in place.

```bash
npm run check
```

### Reset
Resets the workspace to a clean state. Useful when experimenting or when local state becomes inconsistent.

```bash
npm run reset
```


---

## Next Steps

If this is your first time working with Unisphere, a great next step is to **create a runtime with a playground**.

Follow the Hello World walkthrough here:
[https://unisphere.kaltura.com/docs/create/overview](https://unisphere.kaltura.com/docs/create/overview)

The walkthrough will guide you through:

* Creating your first runtime
* Running it locally with a playground
* Understanding how runtimes, packages, and applications connect together

This will give you a strong foundation for building and evolving the experience over time.
