# Components list

## Components list

Read the component readme files for more information.

### GitHub Projects Pages

* [Tiledesk project](https://github.com/tiledesk)
* [Chat21 project](https://github.com/chat21)

### Tiledesk

#### Core

* [Tiledesk Server](https://github.com/Tiledesk/tiledesk-server): This is the server engine of Tiledesk written in NodeJs and Express - MIT license.
* [Tiledesk Dashboard](https://github.com/Tiledesk/tiledesk-dashboard): This is the dashboard webapp for managing the Tiledesk platform written in Angular - MIT license.
* [Tiledesk Deployment](https://github.com/Tiledesk/tiledesk-dashboard): Tiledesk containerized deployment with Helm + Kubernetes and Docker Compose - MIT license

#### Mobile apps

* [Tiledesk Android app](https://github.com/Tiledesk/tiledesk-android): Native Tiledesk Android mobile app - MIT license
* [Tiledesk iOS app](https://github.com/Tiledesk/tiledesk-ios-app): Native Tiledesk iOS mobile app - MIT license

#### SDKs

* [Tiledesk Node js SDK](https://github.com/Tiledesk/tiledesk-nodejs-libs). Tiledesk Node JS SDK - MIT license

### Chat21 Messaging engine

Tiledek supports two Chat21 engines:

#### RabbitMQ + MQTT engine

* [Chat21 Server](https://github.com/chat21/chat21-server). Chat21 Server as RabbitMQ observer functions - MIT license
* [Chat21 HTTP Server](https://github.com/chat21/chat21-http-server). Chat21 RabbitMQ REST API server - MIT license

#### Firebase engine

* [Chat21 Cloud Functions](https://github.com/chat21/chat21-cloud-functions). Firebase cloud functions for Chat21. It's the server engine of Chat21 hosted on Google Firebase - MIT license

#### Web Clients

* [Chat21 Web Widget](https://github.com/chat21/chat21-web-widget). Live Chat Widget built with Firebase and Angular4 for customer support - MIT license
* [Chat21 Ionic Web App](https://github.com/chat21/chat21-ionic). A ionic v5 and Angular 8 desktop and mobile chat used by agents - MIT license

#### SDKs

* [Chat21 Node js SDK](https://github.com/chat21/chat21-node-sdk). Chat21 Node JS SDK - MIT license

#### Mobile SDKs

* [Chat21 Android SDK](https://github.com/Tiledesk/tiledesk-android-sdk). Native Chat21 SDK for Android - MIT license
* [Chat21 iOS SDK](https://github.com/Tiledesk/tiledesk-ios-sdk). Native Chat21 SDK for iOS - MIT license

## Components dependency diagram

![image](https://github.com/Tiledesk/tiledesk-docs/assets/9378770/ac4feff9-aea5-4ca9-a9c0-1f8ecd0fcc00)

### Components overview

[Chat21](http://www.chat21.org) is the default messaging engine of Tiledesk. Chat21 has a multi platform SDKs: native iOS and Android mobile SDKs and Web SDKs.

Widget, Web Chat and Native mobile apps are Chat21 modules.

Chat21 uses [RabbitMQ](https://www.rabbitmq.com/) + [MQTT](https://mqtt.org/) realtime engine. See the [announcement here](https://tiledesk.com/2021/02/12/tiledesk-new-messaging-engine-moving-from-firebase-to-mqtt-rabbitmq/)

### Tiledesk with RabbitMQ + MQTT Chat21 engine

![image](https://user-images.githubusercontent.com/9378770/107744465-02941f00-6d13-11eb-87b4-03c22038884e.png)

Chat21 communicates with Tiledesk through webhooks. When a Chat21 event occurs - a new message arrives, a new member join a group, etc - a new Event is created and notified to Tiledesk Server. Chat21 then makes an HTTP POST request to send the Event to the Tiledesk webhook [endpoint](https://github.com/Tiledesk/tiledesk-server/blob/master/channels/chat21/chat21WebHook.js) .

### Tiledesk network diagram

![image](https://user-images.githubusercontent.com/9378770/177378143-e5b61492-7439-4e8f-994e-1677e7c24c4d.png)

### Tiledesk-server overview

![](/files/-LfxHob-5Xx1tikPyMnq)


---

# 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://developer.tiledesk.com/architecture/components.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.
