# Packages and versions (/docs/start/packages)

> The two published packages, the exact version to pin, and the three npm names that install something else.

Two packages make up mdxui 7: `@mdxui/site` renders a record, and `@mdxui/themes` holds the Themes it renders under. Both are at `7.0.0-alpha.0`.

## Install the pinned pair

```bash
pnpm add @mdxui/site@7.0.0-alpha.0
```

`@mdxui/site` depends on `@mdxui/themes` at exactly its own version, so one install brings both. To import `@mdxui/themes` yourself, as [Write a Theme](https://next.mdxui.dev/docs/themes/write-a-theme) does, add it at that same version:

```bash
pnpm add @mdxui/themes@7.0.0-alpha.0
```

## Names that install something else

| Never install | What it installs | Why it breaks |
| --- | --- | --- |
| `mdxui` | `7.0.0-alpha.1`, from an earlier, unrelated line | Types and schemas only, with no renderer; it predates the records these docs describe |
| `@mdxui/app` | `6.0.1`, from the 6 line | The App renderer of these docs is unpublished; App types are [studies](https://next.mdxui.dev/docs/app) |
| `@mdxui/themes` with no version | `6.3.0`, the `latest` tag of the 6 line | A second, older copy beside the one `@mdxui/site` pins |

## Why the exact version

The packages are alpha, and an alpha can tighten or loosen any bound. A record that parses under one alpha may be refused under the next, at parse, by path, before anything renders. Pin the exact version, and run `PageSchema.safeParse` on every record in CI; [Have your agent write a page](https://next.mdxui.dev/docs/agents/write-a-page) shows the check. Read [Release notes](https://next.mdxui.dev/docs/reference/changelog) before you move the pin.

## What each package holds

| Package | Holds | dist-tags |
| --- | --- | --- |
| `@mdxui/site` | The page schema, `renderPage`, the composer, the section shells, the document, and every Section type with its CSS | `latest` and `alpha`: `7.0.0-alpha.0` |
| `@mdxui/themes` | The Theme contract, `compileTheme`, `resolveTokens` and the 5 Themes | `alpha`: `7.0.0-alpha.0`; `latest`: `6.3.0` |

| Package | Installed here | Depends on |
| --- | --- | --- |
| `@mdxui/site` | `7.0.0-alpha.0` | `@iconify-json/lucide@1.2.131`, `@iconify-json/simple-icons@1.2.95`, `@mdxui/themes@7.0.0-alpha.0`, `lucide-static@1.26.0`, `simple-icons@16.27.0`, `zod@4.6.2` |
| `@mdxui/themes` | `7.0.0-alpha.0` | nothing |

Both declare Node.js `>=22`.

The guides run their TypeScript files directly, which needs Node.js 22.18 or later.

## License and source

Both packages declare `license: UNLICENSED`. The npm tarballs hold the built JavaScript and the type declarations; the source is closed while the packages are alpha.

`UNLICENSED` grants no license, and no terms of use are published for the alpha. Evaluate 7.0.0-alpha.0; before you ship it in a product, wait for a published license. Every export is listed in [@mdxui/site exports](https://next.mdxui.dev/docs/reference/site-exports) and [@mdxui/themes exports](https://next.mdxui.dev/docs/reference/themes-exports).
