> For the complete documentation index, see [llms.txt](https://docs.midio.com/midio-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.midio.com/midio-docs/getting-started/quick-start-guide.md).

# Quick Start Guide

## **Midio Quick Start Guide**

Welcome to the **Midio Quick Start Guide!** This guide will introduce you to the most core features of Midio, helping you get familiar with the **editor, creating flows, and how to execute them**. By the end, you’ll know how to create and run your first flow.

***

**Dashboard**

The **Midio Dashboard** provides a central overview of all your projects. From here, you can easily manage your existing projects and create new ones.

#### **Creating a New Project**

To start a new project:

1. Click the **New Project** button at the top of the dashboard.
2. Choose a template, and your new project will automatically open.

<figure><img src="/files/3NtEgwCXg6WELQLcGFs9" alt=""><figcaption></figcaption></figure>

***

### **Project Overview**

When you open Midio, the **Project Overview** panel provides a high-level view of your project. Here, you can see all your **modules, functions, and events** in a structured hierarchy.

Each **module** acts as a container for node flows and can include additional modules or function definitions. This helps keep your project organized. You can create new modules and functions by **clicking the plus-button** or **right-clicking in the Project Overview panel** and selecting the desired option.

<figure><img src="/files/GWVuvJ7IXcwLjTmT99es" alt="" width="204"><figcaption></figcaption></figure>

***

### **The Node Editor**

When you **click on an item in the Project Overview**, it opens in the **Node Editor**.

This is where you **design and edit flows** by adding and connecting nodes. Flows define how data moves and how execution is controlled within your application.

* **Modules** are the main space where you create top-level flows and link them to outside events.
* **Functions** allow you to create reusable flows that can be used as custom nodes in other flows.

<figure><img src="/files/T0i3PGIOQhqn6NzvwoQm" alt=""><figcaption></figcaption></figure>

***

### **Modules vs. Functions**

* **Modules** serve both as **containers** and **canvases** for flows. They help organize your project and can contain **other modules** and **function definitions**.
* **Functions** are reusable flows that become **custom nodes**, which can be added to other flows to **avoid repetition and improve maintainability**.

A **common pattern** is to start with a **`Main` module** where you build your flows and a **`Tests` module** to store test cases for debugging.

<figure><img src="/files/ZTvDV2MBlVV0fe3F7CfB" alt=""><figcaption></figcaption></figure>

***

### **Creating a Flow**

#### **Adding Nodes**

To add nodes to your flow:

* Open the **Node Palette** using one of the following methods:
  * Click the **plus button** (+) in the toolbar
  * Press the space bar
  * Double-click the canvas
* Find the node you need and click to add it to the canvas.

<figure><img src="/files/940Iz6PfFR7gOylymPEt" alt="" width="563"><figcaption></figcaption></figure>

#### **Connecting Nodes Together**

Nodes **communicate** by passing **triggers** and **data** through their **input and output sockets**.

* **Triggers** (green) define the **execution order**—they determine when a node runs.
* **Data sockets** (blue) pass **values** between nodes.
* **Rules:**
  * Triggers **can only connect to** triggers.
  * Data **can only connect to** data.
  * You can also enter **manual values** or **expressions** directly in **data inputs** (e.g., numbers, text, or calculations).

<figure><img src="/files/AKKQ3fHpHCJ8uSC2dtzo" alt="" width="563"><figcaption></figcaption></figure>

#### **Executing Your Flow**

* Any node with a **trigger input** can be **executed manually** by clicking the **play icon** (▶) in its header.
* If a node **relies on data** from another triggered node, that node **must be executed first** to generate the required data.
* **Best Practice:** Always execute the **leftmost node** in your flow to ensure all dependent nodes receive the necessary inputs.

***

### **Seeing the Output**

To inspect what your flow is doing, you can log data to the **Log Panel.** The **Log Panel** can be opened by clicking the "Add panel" button in the bottom right corner of the editor.

1. Add a **`Std Log` node** from the Node Palette.
2. Enter some text into its `input` property.
3. Execute the flow by clicking the **play button**.
4. Open the **Log Panel** to view the logged output.

<figure><img src="/files/9y8Zjr1MIQf4KwZA2g75" alt="" width="563"><figcaption></figcaption></figure>

For more advanced debugging, consider using **User Traces**, which provide **detailed insights into execution history and values**.

[**Learn more about User Traces here**](/midio-docs/reference/overview/user-traces.md)

***

### **Next Steps**

Congratulations! You’ve now learned the basics of the **Midio Editor, working with Nodes, and Flow Execution**.

#### **Where to go next?**

* Try making [**Your First Midio App**](/midio-docs/getting-started-1.md)
* Explore the [**How-To Guides**](/midio-docs/guides/http.md) for real-world use cases
* Learn more about the **Midio Language in the** [**Language Reference**](/midio-docs/reference/the-midio-language.md)
