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

# Supported libraries

> The libraries and pinned versions Webstorio compiles your page code against — the compatibility manifest.

Webstorio pages and components are **React** (`.tsx`). However your code is
created — generated by the AI page builder, tweaked in the visual editor, or
written and pushed with the [CLI](/developer/how-cli-works) — the Webstorio server compiles
it against a fixed set of supported libraries at pinned versions. This list is
the **compatibility manifest**.

## Allowed libraries

Page code may only import from this allowlist. Anything else must be inlined as a
relative import (the bundler includes it in the page):

| Package                      | Typical import                                       |
| ---------------------------- | ---------------------------------------------------- |
| `react`                      | `react`, `react/*` (e.g. `react/jsx-runtime`)        |
| `react-dom`                  | `react-dom`, `react-dom/*` (e.g. `react-dom/client`) |
| `lucide-react`               | Icons                                                |
| `@hugeicons/react`           | Hugeicons React components                           |
| `@hugeicons/core-free-icons` | Hugeicons icon set                                   |
| `motion`                     | `motion/react` (and other `motion/*` subpaths)       |
| `three`                      | `three`, `three/*`                                   |
| `@react-three/fiber`         | React Three Fiber                                    |
| `@react-three/drei`          | Drei helpers                                         |
| `@react-spring/three`        | React Spring for Three                               |
| `mapbox-gl`                  | Maps                                                 |
| `lenis`                      | `lenis`, `lenis/react` (smooth scroll)               |

Subpaths under `react/`, `react-dom/`, `motion/`, `three/`, `lenis/`,
`@react-three/`, `@react-spring/`, and `@hugeicons/` are allowed when they match
the packages above.

<Warning>
  Compilation fails fast if page code imports a non-allowlisted package or has
  no default export. The server re-validates everything before it compiles.
</Warning>

## Compatibility date

Each project pins a **compatibility date** — the `compatibilityDate` field in
[`webstorio.config.ts`](/cli/configuration), a `YYYY-MM-DD` value that selects
which versions of the libraries above your project targets.

* `webstorio init` writes the current date when you scaffold a project.
* The server compiles against the newest version set effective **on or before**
  that date, so your site keeps building the same way even as Webstorio ships
  newer versions later.
* To adopt newer versions, bump the date with
  [`webstorio update`](/cli/commands#webstorio-update), which also realigns your
  local `devDependencies`.

## Keeping local code in sync

When you build with the [CLI](/developer/how-cli-works), run
[`webstorio update`](/cli/commands#webstorio-update) to align your local
`devDependencies` with the exact versions the server uses — so your editor types
and local preview match production.

## Request a library

Need a package that isn't on the list? You can ask us to add it to the
compatibility manifest. Email [hello@webstorio.com](mailto:hello@webstorio.com)
with:

* the **package name** (and the version, if you need a specific one),
* a short note on **what you're building** and why the package is needed, and
* a link to the package (npm or repository).

We prioritize widely-used, browser-safe libraries that compile cleanly on the
server. Until a package is added, inline the code you need as a relative import.
