> ## Documentation Index
> Fetch the complete documentation index at: https://docs.inklyai.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Hosting and publishing

> Serve a hub from GitHub, publish standalone snapshots, manage assets, and control demo visibility.

Inkly gives you two ways to put demos online:

* A **hosted hub** backed by a GitHub repo.
* A **standalone snapshot** for sharing one frozen demo.

Use a hosted hub for your live demo site. Use a standalone snapshot when you want to share a draft, review a demo, or send one link without changing the live hub.

## GitHub-backed hub

A GitHub-backed hub is your live, hosted demo site. You connect a repo once, then Inkly serves the hub from the files in that repo.

For the setup flow, see [Set up Git sync](/platform/get-synced).

<Steps>
  <Step title="Connect a repo">
    During onboarding, or later under **Settings** → **GitHub**, connect the repo that contains your hub.
  </Step>

  <Step title="Choose the source branch">
    Pick the branch Inkly should publish from.
  </Step>

  <Step title="Open your hosted hub">
    Your hub is available at `/hub/<slug>`. Each demo also has its own hosted URL.
  </Step>
</Steps>

## Update the live hub

Push changes to the connected branch to update the hosted hub.

You can also edit demos in the web editor. Inkly saves those edits back to your GitHub repo as a commit, so your repo stays the source of truth.

<Note>
  Keep generated screenshots, recordings, and audio as managed assets. Keep demo definitions, hub config, and text content in the repo.
</Note>

## Standalone snapshots

A standalone snapshot is a frozen copy of one demo at a shareable `/p/<id>` URL. It does not require a connected GitHub repo.

Publish one with `inkly snapshot`:

```bash theme={null}
inkly snapshot demos/onboarding
```

Anyone with the snapshot link can view it. Later edits to the demo do not change the snapshot. Publish a new snapshot when you want a new version.

See [Publish a demo](/cli/publish-a-snapshot) for the snapshot command reference.

## Assets

Captured screenshots, recordings, images, and generated audio are uploaded as managed assets. Demo files reference those assets by stable ids, so your repo stays small and text-focused.

Run `inkly sync` when you want to move large local assets to Inkly storage before committing:

```bash theme={null}
inkly sync
```

This step is optional. Hosted demos can read local assets from your hub, but syncing helps keep large image, video, and audio files out of GitHub.

## Visibility

Set a demo's `visibility` to control whether it appears publicly.

| Value     | Behavior                                                                               |
| --------- | -------------------------------------------------------------------------------------- |
| `public`  | The demo appears on the hosted hub and can be opened directly.                         |
| `private` | The demo is hidden from the hosted hub and direct public URLs return a not-found page. |

Local preview with `inkly dev` still shows private demos so you can review drafts before publishing.

## Custom domains

Open **Settings** → **Domain** to request a custom domain, such as `demos.yourdomain.com`.

<Warning>
  Custom domains are not yet self-serve. Submit the request in settings, and the Inkly team will confirm the DNS details before assigning the domain.
</Warning>
