> For the complete documentation index, see [llms.txt](https://developer.frontitude.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.frontitude.com/developer-cli/file-formats/web--json.md).

# Web (.json)

Frontitude supports multiple JSON formats.

{% hint style="info" %}
Format is automatically detected based on the file extension, so there’s no need to specify the format type when using it. ✨
{% endhint %}

{% hint style="info" %}
`frontitude push` supports the **flat** format only. Nested, Metadata, and multi-locale Translations formats are pull-only.
{% endhint %}

## Flat

**Example**

{% code fullWidth="false" %}

```json
{
  "info_tooltip.title": "No worries, you won’t be charged",
  "info_tooltip.paragraph": "You can review this order before it's final"
}
```

{% endcode %}

## Nested

**Example**

```json
{
  "info_tooltip": {
    "title": "No worries, you won’t be charged",
    "paragraph": "You can review this order before it's final"
  }
}
```

## Metadata

Frontitude supports an extended JSON format, called ***Metadata***, which basically includes all metadata stored in Frontitude for each copy item.

**Example**

```json
{
  "info_tooltip.title": {
    "value": "No worries, you won’t be charged",
    "status": "Final",
    "tags": ["Title", "Info tooltip", "Payment flow"],
    "isMixedStyle": false,
    "note": "A tooltip title, should grab attention and give users more information about next step",
    "createdAt": "2021-11-24T11:37:44.896Z",
    "updatedAt": "2021-11-25T10:12:34.131Z",
    "lastEditedBy": "Owen Fogel",
    "frontitudeLink": "https://app.frontitude.com/project/becaf236-53e7-473a-be41-3d6f7fc66168?edit=10278ce3-e802-4750-9b33-ef31f70e7bd0"
  },
  "info_tooltip.paragraph": {
    "value": "No worries, you won’t be charged",
    "status": "Final",
    "tags": ["Title", "Info tooltip", "Payment flow"],
    "isMixedStyle": false,
    "note": "A tooltip title, should grab attention and give users more information about next step",
    "createdAt": "2021-11-24T11:37:44.896Z",
    "updatedAt": "2021-11-25T10:12:34.131Z",
    "lastEditedBy": "Owen Fogel",
    "frontitudeLink": "https://app.frontitude.com/project/becaf236-53e7-473a-be41-3d6f7fc66168?edit=10278ce3-e802-4750-9b33-ef31f70e7bd0"
  }
}
```

## Translations (Single file)

This format assumes that translations in all languages are defined in a single file. This is usually the case in small/medium applications.

**Example**

{% code title="strings.json" %}

```json
{
  "en": {
    "info_tooltip.title": "No worries, you won’t be charged",
    "info_tooltip.paragraph": "You can review this order before it's final"
  },
  "es": {
    "info_tooltip.title": "No te preocupes, no se te cobrará",
    "info_tooltip.paragraph": "Puedes revisar este pedido antes de que sea definitivo"
  },
  "de": {
    "info_tooltip.title": "Keine Sorge, es entstehen Ihnen keine Kosten",
    "info_tooltip.paragraph": "Sie können diese Bestellung überprüfen, bevor sie endgültig ist"
  },
  "ja": {
    "info_tooltip.title": "請求されませんのでご安心ください",
    "info_tooltip.paragraph": "この注文を確定する前に確認できます"
  }
}
```

{% endcode %}

## Translations (Separate files)

This format assumes that translations are stored in separated files, each dedicated for a specific language. This is usually the case in large applications.

**Example**

{% code title="strings.json" %}

```json
{
  "info_tooltip.title": "No worries, you won’t be charged",
  "info_tooltip.paragraph": "You can review this order before it's final"
}
```

{% endcode %}

{% code title="strings-es.json" %}

```json
{
  "info_tooltip.title": "No te preocupes, no se te cobrará",
  "info_tooltip.paragraph": "Puedes revisar este pedido antes de que sea definitivo"
}
```

{% endcode %}

{% code title="strings-fr\_CA.json" %}

```json
{
  "info_tooltip.title": "Ne t'inquiète pas, tu ne seras pas facturé",
  "info_tooltip.paragraph": "Tu peux revoir cette commande avant qu'elle soit définitive"
}‍
```

{% endcode %}
