---
source: https://carbone.io/documentation/design/overview/getting-started.html
title: "Design your first template"
description: "Design your first template"
generated_at: "2026-07-07"
---

# Getting started

Design your first template

## Essential knowledge

-   **What is a template?** A document created with the tool of your choice. It can be a DOCX, PPTX, ODT, HTML, MD, etc. Carbone supports almost [any type of editable document](/documentation/design/overview/template-feature.md).
    
-   **What is a JSON?** A way to organize and share information in a format that is easy for both people and computers to understand. The JSON is the data coming directly from your existing applications. [Learn JSON](https://www.youtube.com/results?search_query=learn+json+for+beginners).
    
-   **What is a Carbone Tag?** A placeholder (also called "merge field") in your template that indicates where data should be inserted. Carbone tags are written between curly braces `{}`. Types of Carbone tags:
    
    -   `{d.}`: Injects data from the main `data` object. [Examples](/documentation/design/substitutions/the-basics.md)
    -   `{c.}`: Injects data from the `complement` object. [More info](/documentation/developer/http-api/generate-reports.md#generate-a-report-request-body)
    -   `{# }`: Special tag to declare an [alias](/documentation/design/substitutions/aliases.md) (shortcut).
    -   `{t( )}`: Special tag for [multi-language translation](/documentation/design/advanced-features/translations-i18n.md)
    -   `{o.}`: Special tag to apply Carbone options: [pre-release tags](/documentation/design/overview/version-lifecycle.md#pre-release-features) and [arithmetic precision](/documentation/design/computation/simple-mathematics.md#arithmetic-precision).
-   **How does Carbone work?** Carbone merges your template with the data and generates a new document.
    
    ![Carbone Architecture](/img/doc/carbone-workflow.png)
-   **What is a Carbone Formatter?** A function (e.g., `:lowerCase`) that is added to the end of a Carbone tag to modify the data. What you can do with [formatters](/documentation/design/formatters/overview.md):
    
    -   Format [numbers](/documentation/design/formatters/number.md), [dates](/documentation/design/formatters/date.md), [strings](/documentation/design/formatters/text.md), [currencies](/documentation/design/formatters/currency.md), etc.
    -   [Create conditions](/documentation/design/conditions/overview.md),
    -   Perform [mathematical computations](/documentation/design/computation/simple-mathematics.md), [aggregations](/documentation/design/computation/aggregation.md), etc
    -   Use them for advanced features such as [inserting images](/documentation/design/advanced-features/pictures.md), [merging PDFs](/documentation/design/advanced-features/file-operations.md), [parsing HTML](/documentation/design/advanced-features/html.md), or [applying colors](/documentation/design/advanced-features/colors.md), etc.

## Generate a document

Designing a template is 80% about mastering your text editor (e.g., Microsoft Word, LibreOffice, OnlyOffice) and 20% about understanding the Carbone language, which is fully covered in this documentation.

-   Use your text editor to add elements such as headers, footers, [page numbers](/documentation/design/advanced-features/pagination.md#page-numbers), and [table of contents](/documentation/design/advanced-features/pagination.md#table-of-contents), ...
-   Add Carbone tags to inject your data and see the result

Ready to **generate your first** document with Carbone? Just [follow this quickstart tutorial](/documentation/quickstart/getting-started/generate-a-document.md) to get started, then get inspired by one of our [examples](/examples/index.md).

## Next steps

**We highly recommend starting with these two sections:**

-   Learn the basics: [Substitutions](/documentation/design/substitutions/the-basics.md)
-   Learn how to create loops to print a list of elements: [Repetitions](/documentation/design/repetitions/with-arrays.md)

The documentation is written with many easy-to-read examples, generated and executed by the latest Carbone version itself! This ensures the content is always up-to-date.

**You may also be interested in:**

-   [Configuring Microsoft Word/LibreOffice to simplify writing single quotes](/documentation/design/overview/design-best-practices.md#configuration-of-microsoft-word-and-libreoffice)
-   [Choosing the best template type for your needs](/documentation/design/overview/design-best-practices.md#frequently-asked-questions-which-template-type-should-i-use)
-   [Making Carbone tags more compact](/documentation/design/overview/design-best-practices.md#frequently-asked-questions-how-can-i-make-the-carbone-tag-more-compact)
-   [Understanding the main supported templates and their features](/documentation/design/overview/template-feature.md)
-   [Using spreadsheet (XLSX, ODS) formulas in a template](/documentation/design/overview/design-best-practices.md#frequently-asked-questions-can-i-use-spreadsheet-xlsx-ods-formulas-in-a-template)
-   [Exploring template examples](/examples/index.md)
-   The [help center](https://help.carbone.io), which includes some (old) [tutorials](https://help.carbone.io/en-us/category/tutorials-1qokelh/)

> ℹ️ **Note:** 👋 If you’re stuck, feel free to contact our support team via chat!

## Related topics

- [Version lifecycle](/documentation/design/overview/version-lifecycle.md)
- [Template feature](/documentation/design/overview/template-feature.md)
- [Philosophy](/documentation/design/overview/philosophy.md)
- [In-template options](/documentation/design/overview/in-template-options.md)
- [Fonts support](/documentation/design/overview/font-support.md)
- [Design best practices](/documentation/design/overview/design-best-practices.md)
