# Tutorials

## How to use

If you have never developed a Smartstore module before, we recommend that you read the [Getting started with modules](/compose/modules/getting-started-with-modules.md) first, and then start with the [Building a simple "Hello World" module](/compose/modules/examples/building-a-simple-hello-world-module.md) tutorial. Otherwise, you can jump right into [the topic](#list-of-tutorials) you want to learn more about.

{% hint style="info" %}
We also provide links to additional information for specific topics covered in each tutorial. This way, you can quickly brush up on that topic and jump right back in.
{% endhint %}

## Example Repository

The source code for all the tutorials can be found in our [Code Examples Repository](https://github.com/smartstore/dev-docs-code-examples).

All tutorials are included in the [solution file](https://github.com/smartstore/dev-docs-code-examples/blob/main/Smartstore.CodeExamples.sln) located in the root of the repository. To run them, just follow the [instructions in the ReadMe](https://github.com/smartstore/dev-docs-code-examples#installation).

## List of Tutorials

### [Building a simple "Hello World" module](/compose/modules/examples/building-a-simple-hello-world-module.md)

Start your journey here and build your first Smartstore module.

### [Adding tabs](/compose/modules/examples/adding-tabs.md)

Add a tab to the product editing page in the backend.

### [Creating a Widget provider](/compose/modules/examples/creating-a-widget-provider.md)

Create a widget, that displays custom content in the frontend.

### [Adding menu items](/compose/modules/examples/adding-menu-items.md)

Access the menu bar in the backend and add a menu item and a submenu.

### [Creating a Block](/compose/modules/examples/creating-a-block.md)

Create your own PageBuilder-Block to display in stories. Tweak the Story view modes, to provide a better user experience and render a widget.

### [Creating an Export provider](/compose/modules/examples/creating-a-export-provider.md)

Provide a configurable export for products, store information, etc.

### [Creating a Domain entity](/compose/modules/examples/creating-a-domain-entity.md)

Create a small messaging system, using your own database table.


---

# 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://dev.smartstore.com/compose/modules/examples.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.
