## How to create content?

For example, you want to create content named `MyFormat`. To do this, you must perform the following actions:

1. Copy `template` folder from `core/features` in `core/features/content`
2. Rename this folder in `myformat`
3. Inside the `myformat` folder rename all the `template` on `content.myformat`
4. In the `settings.gradle` file in the `includes` array add the following code:
    ```groovy
        String[] includes = [
            ...
            ":features:content:myformat:common",
            ":features:content:myformat:client",
            ":features:content:myformat:server",
            ...
        ]
    ```
5. In the `core/features/content/myformat/common/src` folder create folders with appropriate subfolders `commonMain/kotlin/dev/inmo/postssystem/features/content/myformat/common`:
6. In the last folder `сommon`, create a data class and the configurator as shown below:
    ```kotlin
       // MyFormatContent.kt
       @Serializable
       data class MyFormatContent(
           // Your code
       ) : Content

       // MyFormatContentSerializerModuleConfigurator.kt
       object MyFormatContentSerializerModuleConfigurator : ContentSerializersModuleConfigurator.Element {
           override fun PolymorphicModuleBuilder<Content>.invoke() {
               subclass(MyFormatContent::class, MyFormatContent.serializer())
           }
       }
    ```
7. In two `di.kt` file located in `core/client/src/commonMain/kotlin/dev/inmo/postsystem/client` and `core/server/src/main/java/dev/inmo/postsystem/client` respectively add the following string:
```kotlin
    singleWithRandomQualifier<ContentSerializersModuleConfigurator.Element> { MyFormatContentSerializerModuleConfigurator }
```

## Client

**Currently, this information is actual only for JS (browser) clients. Other client platforms will be added later**

Besides, you may (and it is strongly recommended to) create your own client `ContentClientProvider` realization.
This realization will contain all main functions for drawing of content on the client side.

## Server

On the server side it is required to