# 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.midio.com/midio-docs/getting-started/quick-start-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
