# Introduction to conversion

<a id="what-is-the-conversion">

## What is the conversion?

The [editing engine](../../architecture/editing-engine.md) of CKEditor 5 works on two separate layers – [model](../../architecture/editing-engine.md#model) and [view](../../architecture/editing-engine.md#view). The process of transforming one into the other is called conversion.

<a id="upcast-conversion">

### Upcast conversion

When you load data into the editor, the view is created out of the markup. Then, with the help of the upcast converters, the model is created. Once that is done, the model becomes the editor state. The whole process is called upcast conversion.

<a id="downcast-conversion">

### Downcast conversion

All changes, such as typing or pasting from the clipboard, are applied directly to the model. To update the editing view, e.i. the layer being displayed to the user, the engine transforms these changes in the model to the view. The same process is executed when data needs to be generated (for example, when you copy editor content or use `editor.getData()`). These processes are called editing and downcast conversions.

You can think about upcast and downcast as processes working in opposite directions, ones that are symmetrical to each other.

<a id="further-reading">

## Further reading

In the following guides, you will learn how to create the right converter for each case when creating your CKEditor 5 plugin.

* **[Model to view (downcast)](downcast.md)**

  The model has to be transformed into the view. Learn how to achieve that by creating downcast converters.

* **[View to model (upcast)](upcast.md)**

  Raw data coming into the editor has to be transformed into the model. Learn how to achieve that by creating upcast converters.

* **[Conversion helpers](helpers/intro.md)**

  There are plenty of ways to transform data between model and view. To help you do this as efficiently as possible, we provided many functions that speed up this process. This chapter will help you choose the right helper for the job.

* **[Attributes and inline formatting](attributes.md)**

  Understand how text attributes map to inline elements, how nesting and merging work, and what to watch for when integrating formatting features.

---

Full index of the CKEditor 5 documentation: [llms.txt](../../../../llms.txt)
