# @contentful/experiences-core

> *Note*: This package is not meant to be used directly by the end user. It is a dependency for the Studio Experiences packages. Changes to this package are not guaranteed to follow semantic versioning and may break without notice if used directly.

Latest version **4.0.1** (published 2026-10-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install @contentful/experiences-core
pnpm add @contentful/experiences-core
yarn add @contentful/experiences-core
bun add @contentful/experiences-core
```

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 4.0.1 |
| Published | 2026-10-09 |
| First published | 2024-03-04 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 5 |
| Unpacked size | 1.3 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 18 |
| Maintainers | it-internal, whydah-gally, contentful-ecosystem, michaelpearce |

## Links

- npm: https://www.npmjs.com/package/@contentful/experiences-core
- Repository: https://github.com/contentful/experience-builder
- Homepage: https://github.com/contentful/experience-builder#readme
- Issues: https://github.com/contentful/experience-builder/issues
- npm.io page: https://npm.io/package/@contentful/experiences-core

## Dependencies (5)

- [md5](https://npm.io/package/md5.md) 2.3.0
- [zustand](https://npm.io/package/zustand.md) ^5.0.15
- [lodash.clonedeep](https://npm.io/package/lodash.clonedeep.md) ^4.5.0
- [@contentful/rich-text-types](https://npm.io/package/@contentful/rich-text-types.md) ^17.2.7
- [@contentful/experiences-validators](https://npm.io/package/@contentful/experiences-validators.md) 4.0.1

## Recent versions

- 4.0.1 (latest) — 2026-10-09
- 4.0.2-dev-20261016T2337-3cf6f10.0 (dev) — 2026-10-16
- 4.0.1-beta.0 (next) — 2026-10-09
- 3.8.0-prerelease-20251001T1442-021a279.0 (prerelease) — 2025-10-01
- 3.0.0-alpha-20250805T1527-42cce69.0 (alpha) — 2025-08-05
- 4.0.2-dev-20261016T0059-6677253.0 — 2026-10-16
- 4.0.2-dev-20261015T2349-ebd9173.0 — 2026-10-15
- 4.0.2-dev-20261015T2302-41c433e.0 — 2026-10-15
- 4.0.2-dev-20261015T0428-56e3b42.0 — 2026-10-15
- 4.0.2-dev-20261015T0334-10dd756.0 — 2026-10-15
- 4.0.2-dev-20261015T0250-69620c5.0 — 2026-10-15
- 4.0.2-dev-20261015T0151-d89f384.0 — 2026-10-15
- 4.0.2-dev-20261015T0031-4c28e26.0 — 2026-10-15
- 4.0.2-dev-20261014T2349-2294523.0 — 2026-10-14
- 4.0.2-dev-20261014T0145-46c8f28.0 — 2026-10-14
- … 829 more at https://npm.io/package/@contentful/experiences-core/versions

## README

# @contentful/experiences-core

## Private Package Notice

*Note*: This package is not meant to be used directly by the end user. It is a dependency for the Studio Experiences packages. Changes to this package are not guaranteed to follow semantic versioning and may break without notice if used directly.

### Purpose

- To contain shared code and utilities across the Experiences packages such as constants, types, transformers, and hooks.
- This means additions to core should be framework agnostic. For example, code that is only compatible with React does not belong in the core package.

### Concepts
- **Deep binding**: Relates to the ability to resolve multiple references. Such an entry containing a reference to another entry which may also contain a reference to another entry and so on.
- **Component definition** Baseline definition to outline what is needed to define all component types whether it is a structure, built-in, or custom component.
- **Entity**: Contentful entries that get converted into an experience object that can be used within the experiences packages.
- **Fetchers**: The helper classes and functions in the Entity directory get consumed by the fetchers which get bundled up into either `fetchBySlug` or `fetchById`. The listed fetchers are the two main functions that are exposed to the end user in the SDK to fetch a user's experience which is stored in Contentful as an entry.
- **Registries**: An in-memory storage technique that the user can decide to provide for themselves or other personas in the editor canvas. Design tokens is an useful example where a user can provide their own thematic values with regards to text size, component sizes, spacing, colors, and borders in a JSON format that is resolved by the registry and provided as options in the UI editor sidebar.
- **Exporting types and constants**: Notice in the `package.json` there is a `typesVersions` definition that separates the constants and types as separated bundled packages where the rollup is defined in the `rollup.config.mjs` file. This effectively means in practice consuming the types and constants have different imports - namely `@contentful/experiences-core/constants` and `@contentful/experiences-core/types`.

### Relevant Contentful documentation links
- [Data structures](https://www.contentful.com/developers/docs/experiences/data-structures/)
- [Design tokens](https://www.contentful.com/developers/docs/experiences/design-tokens/)

---
_Source: https://npm.io/package/@contentful/experiences-core · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
