> For the complete documentation index, see [llms.txt](https://docs.aitheon.com/creators-studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aitheon.com/creators-studio/basics.md).

# Basics

While you don't need profound knowledge in programming for composing many kinds of applications, you should definitely understand, how some fundamental things work.

The main principle of any application: it takes some data, makes a transformation that we want, and returns the result: sends it to another app, device, or shows on a dashboard.

## Data types

Computer programs process data due to its type. Main types we can spectate in the **inject** component properties window. This component is able to imitate different input messages for the app.&#x20;

![](https://3983587133-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LvAp4NFmv7Cj5kJvKjw%2F-MX2KoQzmnZP8trJS41_%2F-MX2XZM7vQUszBvgq55g%2Finject%20component.png?alt=media\&token=d26e0560-e9c7-49f3-a3ce-6c5bae342fc6)

The most useful for codless app composing data and message types are:

**string** - data as a text. For example, "Hello, mom!" is a string. It must be in quotes: "string" or 'string'.

**number** - integers and floats. Note that **1**, **156**, **-10.67** are distinct numbers, but **'1, 156, -10.67'** is one string.

**boolean** - may be **true** or **false**, that's all. For example, an app that switches lights on when **true** (a button sends **true** when pressed).

**timestamp** - just an actual time in the format of number of seconds from a particular moment in 1970 till now. Useful for time-depended actions of the app.

**J: expression** - a valid expression in JavaScript language. For example:

* \[1, 2, 3, 'Hello, mom!', true, -43.2] is an **array** of elements (numbers, string, boolean). Elements are divided by commas and wrapped in square brackets.&#x20;
* {'sensor1': 1, 'sensor2': 'on', 'temperature': 76} is an **object**. This is a **key: value** pairs structure in curvy brackets.&#x20;

## Message structure

Components in a flow receive and send messages - that is what connections between components provide.&#x20;

Each message (**msg**) is an object with properties (keys) and values. The main property for messages is **payload**. An optional property is **topic**. These two are suggested by default in the [inject component](/creators-studio/standard-components/common.md#inject). And the [debug component](/creators-studio/standard-components/common.md#debug) shows us **msg.payload** by default.

The simplest flow will create a payload and show it in debug.&#x20;

![](https://3983587133-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LvAp4NFmv7Cj5kJvKjw%2F-MX6YDO8t2jHzuwrCD8Y%2F-MX6cFJHvX0zju_J6zPO%2Fmessage.gif?alt=media\&token=5e65e960-3e57-4f6b-b249-3eccd7a8b73f)

&#x20;
