# Blocks

An app is simply a sequence of events.

The best apps define an elegant sequence of events that happen without the user even noticing. A great sign in flow for example can happen in seconds but the logic and sequence behind them is a work of art that has been iterated on many times (often using Thunkable's [Live Testing](/snap-to-place/get-started/live-test.md) app).

This is where Thunkable Blocks come in.

Thunkable Blocks are the building blocks of a great experience for your app users. Every component has its own set of blocks to start or trigger an event and set and change properties.

They can be connected to a commonly used set of blocks that range from opening screens, setting up logic, reformatting data or simplifying code.

{% content-ref url="/pages/-LZ7M7dWp7sPF-kNzqIH" %}
[Control](/snap-to-place/control.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LZ7M7dXZpPSVdmB4IXy" %}
[Logic](/snap-to-place/logic.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LZ7M7dYA-kPrpDEFsy\_" %}
[Math](/snap-to-place/math.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LZ7M7dZ0Xco7SsZRBpy" %}
[Text](/snap-to-place/text.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LZ7M7d\_IPkOYtAz2ZPE" %}
[Lists](/snap-to-place/lists.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LZ7M7dawEcA5dCOq2s2" %}
[Color](/snap-to-place/color.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LZ7M7dbOT1FdUJTCESB" %}
[Objects](/snap-to-place/objects.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LZ7M7dcI5JhTK-C\_78W" %}
[Device](/snap-to-place/device.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LZ7M7ddcvOZeNeUNoyw" %}
[Variables](/snap-to-place/variables.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LZ7M7deA4OGxvDD7duZ" %}
[Functions](/snap-to-place/functions.md)
{% endcontent-ref %}

{% content-ref url="/pages/-M5aL5rLKzPYplRcYGE5" %}
[Data Sources](/snap-to-place/data-sources.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LjSxwrHZRtPWR8ebr3F" %}
["Any Component" Blocks](/snap-to-place/any-component-blocks.md)
{% endcontent-ref %}


---

# 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.thunkable.com/snap-to-place/blocks.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.
