# Overview

The Specify platform is based on the following pillars.

* [Organization](#organization)
* [Repository](#repository)
* [Source](#source)
* [Destination](#destination)

Above them, sit the engines:&#x20;

* The [Parsers Engine](https://docs.specifyapp.com/concepts/parsers-engine), accessible via all [destinations](https://docs.specifyapp.com/distribute/available-destinations), offers an high level abstraction to directly transform any SDTF token tree into many well-known technologies like CSS, tailwind, style-dictionary…
* The [SDTF Client](https://docs.specifyapp.com/concepts/sdtf-client), accessible via the [SDK](https://docs.specifyapp.com/distribute/available-destinations/specify-sdk), offers a fine grained control over your SDTF token tree by allowing any mutation and post-process hooks, directly in your codebase.

## Organization

As a Specify **user**, you belong to an **organization**.

In this organization, you create **repositories** to structure your projects.

{% hint style="info" %}
All over Specify APIs, you access your organization using its **`namespace`** (e.g @specifyapp)
{% endhint %}

## Repository

The repository is where the design data get stored, merged and eventually deleted over iterations.

**A repository is exactly one design token tree built with the** [**Specify Design Token Format**](https://docs.specifyapp.com/concepts/specify-design-token-format).

{% hint style="info" %}
You can explore a repository design token tree by heading to the Specify [webapp](https://specifyapp.com/login).
{% endhint %}

## Source

A source belongs to a [Repository](#repository), it represents where the original design data come from - think of [Figma](https://docs.specifyapp.com/collect/available-sources/figma-variables) (Variables or Local Styles) or [Tokens Studio](https://docs.specifyapp.com/collect/available-sources/tokens-studio).

You can add **many sources** into a single repository. Read more about the available [Sources](https://docs.specifyapp.com/collect/available-sources) compatible with Specify.

### Collecting the design data

Once a source is configured, Specify starts to collect your design data. Over this process, the [SDTF Engine](https://docs.specifyapp.com/concepts/sdtf-client/sdtf-engine) acquires, validates and converts the original data into a SDTF token tree that get stored within the repository.

From this point on, you can synchronize your source(s) with Specify anytime, at a click of a button.

{% hint style="info" %}
You can review your sources status by heading to any repository page on the Specify [webapp](https://specifyapp.com/login).
{% endhint %}

### Repository with many sources

Data from many sources get automatically merged into a consolidated SDTF token tree. If Specify detects a conflict over sources, it will refuse to synchronize the first source that cause the conflict and turn it into an error state.

## Destination

A destination belongs to a [Repository](#repository), it represents where the formatted design data get distributed on updates - think of [GitHub](https://docs.specifyapp.com/distribute/available-destinations/github) or any automation you can come up with our [CLI](https://docs.specifyapp.com/distribute/available-destinations/cli) and [SDK](https://docs.specifyapp.com/distribute/available-destinations/specify-sdk).

You can add **many destinations** into a single repository. Read more about the available [Destinations](https://docs.specifyapp.com/distribute/available-destinations) compatible with Specify.

### Distributing the design data

While the source part is highly automated and managed by Specify internals, the destination offers many levers of control over the transformation required to meet your company standards.

Two main APIs at stake here:

* The [Parsers Engine](https://docs.specifyapp.com/concepts/parsers-engine), accessible via all [destinations](https://docs.specifyapp.com/distribute/available-destinations), offers an high level abstraction to directly transform any SDTF token tree into many well-known technologies like CSS, tailwind, style-dictionary…
* The [SDTF Client](https://docs.specifyapp.com/concepts/sdtf-client), accessible via the [SDK](https://docs.specifyapp.com/distribute/available-destinations/specify-sdk), offers a fine grained control over your SDTF token tree by allowing any mutation and post-process hooks, directly in your codebase.


---

# 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://docs.specifyapp.com/concepts/overview.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.
