# Welcome to our dev guides

IoT development can be hard, but we want to make it as easy as possible.

We know this is not an easy undertaking, especially because there are many layers involved in an IoT project, from hardware to the cloud. We can only act on the last one: the application layer. That said, we put a lot of care into understanding the full IoT development process, and we hope these guides help you through it.

{% hint style="success" %}
**New to Ubidots?**

We're an Industrial IoT platform that helps thousands of **end users** and **system integrators** connect their industrial assets to the cloud, maximize uptime, improve efficiency, and drive digital transformation.

Learn more about [our key features](https://ubidots.com/platform), or [create an account](https://industrial.ubidots.com/accounts/signup_industrial/).
{% endhint %}

These guides are categorized as follows:

* **Dashboards**: Our drag-and-drop IoT dashboards are often called "codeless," but that doesn't mean they lack customization. Check these guides to learn how to extend the power of Ubidots dashboards.

{% content-ref url="/pages/MRMpDykMPA97ZOKvi9Hf" %}
[Dashboards & widgets](/dashboards-and-widgets/html-canvas.md)
{% endcontent-ref %}

* **UbiFunctions**: Our serverless environment has grown from a custom decoding tool into an integration and analytics powerhouse. It deserves a chapter of its own.

{% content-ref url="/pages/-MhzPm3IV6pmVP15f8cp" %}
[UbiFunctions](/ubifunctions/getting-started.md)
{% endcontent-ref %}

* **Plugins:** Plugins are purpose-built extensions that add specialized capabilities to your Ubidots account. Learn how to develop, deploy, and use both public and private plugins to tailor the platform to your project's needs.

{% content-ref url="/pages/9pzximvoWPbLp3jiqKQm" %}
[Plugins](/plugins/what-is-a-plugin.md)
{% endcontent-ref %}

* **Synthetic Variables:** Synthetic Variables let you define mathematical and statistical expressions over your time-series data to compute derived values without writing a single backend service. These guides walk you through the editor, the available expression types, and practical examples to help you extract greater meaning from your data.

{% content-ref url="/pages/vT6k2JWQC6ApRKWjFUD0" %}
[Synthetic variables](/synthetic-variables/getting-started.md)
{% endcontent-ref %}

* **Developer Tools:** Whether you prefer working in code or on the command line, Ubidots provides the tooling to build and automate programmatically. These guides cover the JavaScript SDK, the CLI, and the dashboard runtime library, giving you the building blocks to integrate Ubidots deeply into your own development workflows.

{% content-ref url="/pages/XZHm1IrrSKjOFVOzgPeL" %}
[Developer tools](/sdks/javascript.md)
{% endcontent-ref %}

* **Custom IoT Applications:** Ubidots isn't just a dashboard — it's a platform for building fully branded IoT applications. These guides show you how to compose multi-page apps, configure a custom sidebar menu, and apply CSS styling so that the end product feels like your own, not a third-party tool.

{% content-ref url="/pages/Mlfv1wOlFcMhIB0hSUM8" %}
[Custom IoT applications](/apps/pages.md)
{% endcontent-ref %}

{% hint style="success" %}
We'll continue to add more guides and categories. In the meantime, make sure you check out our [Help Center](https://help.ubidots.com)!
{% endhint %}

{% embed url="<https://help.ubidots.com>" %}


---

# 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.ubidots.com/readme.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.
