# Architecture

For developers starting with CARTO, this architecture diagram may help understand how their applications are going to interact with the platform.

<figure><img src="https://3029946802-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FybPdpmLltPkzGFvz7m8A%2Fuploads%2FmTqsPN20rj3BYjQ1muTQ%2FDevelopers%20Overview.png?alt=media&#x26;token=503dd0eb-2ff0-4391-b31b-75bb2ce9382e" alt=""><figcaption></figcaption></figure>

The most important concepts about the architecture are:

* **CARTO always connects to your data warehouse**: by using live connections to your data warehouse, we can build performant and scalable applications without having to manage complex data migration processes, while respecting your company's governance and security policies.
* **To visualize data in a map you will be using deck.gl:** this visualization library is a requirement. If you're using other visualization libraries at the moment, there are strategies to [combine or overlay](https://deck.gl/docs/get-started/using-with-map) them.

{% hint style="success" %}
**Learn more**

In order to understand what each of these pieces do, the [Libraries and APIs section](https://docs.carto.com/carto-for-developers/key-concepts/apis) will cover each component in detail.
{% endhint %}

## JavaScript frameworks

**CARTO is designed to work with any JavaScript-based application**: CARTO will help you accelerate your geospatial development regardless of the framework (eg: React, Vue, Angular...) or stack you're using, as long as your web application uses JavaScript.

## TypeScript support

We recommend using TypeScript when building your apps. You can find more info about this [here](https://deck.gl/docs/get-started/using-with-typescript).
