# 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

![](https://3687550353-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LZ4-zElPfNJXHZk2Q1s%2Fuploads%2Fgit-blob-baf9aa5df3dff4611c10efcf01f9fe6c5b5a7c71%2Fimage.png?alt=media\&token=c150bcaa-2882-458e-b228-8c268f04c9e3)
