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

# Migrating from Package Imports

> If you previously used @blindcast/crypto, @blindcast/keys, @blindcast/storage, or @blindcast/player directly, here's how to map those to the new deliverables.

If you previously integrated BlindCast using the individual packages (`@blindcast/crypto`, `@blindcast/keys`, `@blindcast/storage`, `@blindcast/player`), this page maps your existing code to the new tools.

## Package → deliverable mapping

| Old package                    | New tool                                  | What changed                                                                                                                                               |
| ------------------------------ | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `@blindcast/player`            | [Player](/player/overview)                | **No code changes.** Same `createPlayer()` API. Docs moved from `/packages/player` to `/player/overview`.                                                  |
| `@blindcast/storage` (Node.js) | [CLI](/cli/overview)                      | Server-side encryption and upload is now handled by `blindcast encrypt` and `blindcast upload`. No need to write Node.js scripts.                          |
| `@blindcast/storage` (browser) | [Uploader](/uploader/overview)            | Browser-side upload is now a single `upload()` function in `@blindcast/uploader`. Handles key fetch, encryption, presign, and manifest rewrite internally. |
| `@blindcast/keys` (Express)    | [Key Server Docker](/key-server/overview) | Run `docker run blindcast/keyserver` instead of writing Express setup code. Auth, CORS, and leases are configured via env vars.                            |
| `@blindcast/keys` (Worker)     | [Workers](/serverless/cloudflare-workers) | Same `createWorkerKeyServer` API. No changes needed for existing Worker deployments.                                                                       |
| `@blindcast/crypto`            | (internal)                                | No longer a direct dependency. Used internally by the CLI, Uploader, and Player.                                                                           |

## Do I need to change my code?

**If you use `@blindcast/player`:** No changes. The package and API are the same. Only the docs location moved.

**If you use `@blindcast/storage` in Node.js scripts:** Consider switching to the CLI for simpler workflows. Your existing code still works — `@blindcast/storage` is not deprecated — but the CLI handles encryption, upload, and manifest rewriting in one command.

**If you use `@blindcast/storage` in the browser:** Consider switching to `@blindcast/uploader` for a simpler API. Your existing `createUploader` + `createBrowserTransport` code still works.

**If you run your own Express key server:** Consider switching to the Docker image for less boilerplate. Your existing Express code still works — `@blindcast/keys/express` is not deprecated.

**If you use `createWorkerKeyServer`:** No changes needed. The Worker API is unchanged.

## The packages are not deprecated

All existing packages (`@blindcast/crypto`, `@blindcast/keys`, `@blindcast/storage`, `@blindcast/player`) continue to work and receive updates. The new tools (CLI, Uploader, Key Server Docker) are built on top of them.

The documentation now focuses on the higher-level tools because they cover the most common workflows with less code. If you need lower-level control, the packages are still available.
