---
title: Installation
description: Install the edytor package in a Svelte 5 project and check the requirements for the editor, the CRDT entries and the server room.
icon: download
---

Edytor ships as one npm package, `edytor`. It contains the `<Edytor>` component, the bundled plugins, the collaborative document API and its CRDT engine, and a Cloudflare Durable Object room.

:::warning[Early development]
Edytor is a pre-release (`0.1.0-next.1`) and is not ready for production. The API can change between releases without a compatibility layer.

These docs describe that release. The `edytor@0.0.11` that npm installs without a tag predates it and uses a different API; [Migration](/docs/reference/migration) lists every change. Until the pre-release is published on npm, install the tarball this site hosts (see [Install](#install)).
:::

## Requirements

- **Svelte 5.** `svelte` is a peer dependency (`^5.0.0`). The editor uses runes and snippets, so Svelte 4 is not supported.
- **A Svelte-aware bundler.** The root entry ships `.svelte` files. SvelteKit, or Vite with `@sveltejs/vite-plugin-svelte`, compiles them for you.
- **Node.js 22 or later** (the package's `engines` field).

## Install

The pre-release is not on npm yet. This site hosts its tarball; install it by URL:

```package-install
pnpm add https://edytor-docs.beynar.workers.dev/edytor-0.1.0-next.1.tgz
```

The tarball is the package exactly as it will be published (`pnpm pack` of this release). The bytes under a URL never change, and every earlier pre-release URL keeps answering: a new build ships as a new pre-release version with its own URL, so a lockfile's URL and integrity hash stay valid. Once the pre-release is on npm, install it by its tag instead: `pnpm add edytor@next`. Name the tag: a bare `edytor` resolves to the old `0.0.11`.

If your project does not have Svelte yet, add it too:

```package-install
npm i -D svelte
```

Do not install `yjs` for Edytor. The collaboration engine (a fork of Yjs v14) is vendored inside the package and is available as [`edytor/crdt`](/docs/getting-started/entry-points). The `yjs` package on npm is v13, which cannot exchange updates with v14.

The package pulls in a few runtime dependencies on its own: Atlassian's Pragmatic Drag and Drop (block handles), TanStack Highlight (code block highlighting) and `lib0`.

## Build from source

To build the tarball yourself, use a local clone of the repository that has the `arch-v2` branch, where this release is developed. `master` still holds `0.0.11`, so check out the branch first:

```bash
cd edytor           # your clone
git switch arch-v2
pnpm install
pnpm package        # builds dist/
pnpm pack           # writes edytor-0.1.0-next.1.tgz
```

Then, in your project, install the file:

```package-install
pnpm add ../edytor/edytor-0.1.0-next.1.tgz
```

## Verify the install

Render an editor. It needs no setup:

```svelte title="src/routes/+page.svelte" check
<script lang="ts">
	import { Edytor } from 'edytor';
</script>

<Edytor />
```

You should see one empty paragraph. Hover it to reveal its block handle (touch devices always show it). An empty document always starts with one block of the default type (`paragraph`). `<Edytor>` includes the rich text, image and arrow move plugins by default, so this is already a working rich text editor.

## Next steps

**[Quick start](/docs/getting-started/quick-start)**

Build a full editor with the bundled plugins, content and change handling.

**[SvelteKit](/docs/getting-started/sveltekit)**

Server rendering, readonly output and client-only mounting.

**[Entry points](/docs/getting-started/entry-points)**

What `edytor`, `edytor/crdt`, `edytor/crdt/edytor` and `edytor/cloudflare` contain.

**[Document model](/docs/concepts/document-model)**

The JSON shape of a document.
