> For the complete documentation index, see [llms.txt](https://blings.gitbook.io/blings-knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blings.gitbook.io/blings-knowledge-base/documentation/getting-started/project-architecture.md).

# Project Architecture

A typical project involves the following components:

1. Web Client-side SDK
2. Data-store (either a CRM, a custom API of the customer, or a CSV table hosted on Blings servers)
3. Blings control panel
4. Blings template repository

**The HTML page containing the SDK is doing the following steps:**

1. Getting the specific video template for this project from *Blings template repository*.
2. Getting specific the end-user's data, either from:
   1. External *data-store* (custom API, CRM)
   2. Data hosted on Blings servers
   3. Passing the data directly to the SDK
3. Getting settings from *Blings control panel* (if exist)
4. The video is generated on the fly, and video analytics are sent to *Blings control panel*

{% hint style="info" %}
**NOTE**: For customers that have a limited IP whitelist, we can remove all calls to Blings systems. In this case, the video template will be compiled inside the SDK, and we won't support analytics.
{% endhint %}
