> ## Documentation Index
> Fetch the complete documentation index at: https://docs.doczilla.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Render PDF or Screenshots from a Template

> Define ones, render repeatedly with templates.

export const DeleteBadgeLink = ({label, href}) => {
  return <div className={"flex row gap-2"}>
      <span className="w-8 flex items-center">
        <span className="px-1 py-0.5 rounded-md text-[0.55rem] leading-tight font-bold bg-red-400/20 text-red-700 dark:bg-red-400/20 dark:text-red-400">DEL</span>
      </span>

      <div><a href={href}>{label}</a></div>
    </div>;
};

export const PutBadgeLink = ({label, href}) => {
  return <div className={"flex row gap-2"}>
      <span className="w-8 flex items-center">
        <span className="px-1 py-0.5 rounded-md text-[0.55rem] leading-tight font-bold bg-yellow-400/20 text-yellow-700 dark:bg-yellow-400/20 dark:text-yellow-400">PUT</span>
      </span>

      <div><a href={href}>{label}</a></div>
    </div>;
};

export const GetBadgeLink = ({label, href}) => {
  return <div className={"flex row gap-2"}>
      <span className="w-8 flex items-center">
        <span className="px-1 py-0.5 rounded-md text-[0.55rem] leading-tight font-bold bg-green-400/20 text-green-700 dark:bg-green-400/20 dark:text-green-400">GET</span>
      </span>

      <div><a href={href}>{label}</a></div>
    </div>;
};

export const PostBadgeLink = ({label, href}) => {
  return <div className={"flex row gap-2"}>
      <span className="w-8 flex items-center">
        <span className="px-1 py-0.5 rounded-md text-[0.55rem] leading-tight font-bold bg-blue-400/20 text-blue-700 dark:bg-blue-400/20 dark:text-blue-400">POST</span>
      </span>

      <div><a href={href}>{label}</a></div>
    </div>;
};

<Frame>
  <video autoPlay muted loop className="w-full" src="https://assets.doczilla.app/features/videos/templates.mp4" />
</Frame>

With templates, you can predefine all available [Page](/api-reference/page-options), [PDF](/api-reference/pdf-options), and [Screenshot](/api-reference/screenshot-options) options. There's no need for manual deployments anymore.
When the HTML changes, simply update the template in our editor and release it instantly.

## Manage templates

You can easily manage your templates through the 'Templates' menu in Doczilla's dashboard.
This area allows for creating, modifying, and deleting templates.
Alternatively, you can also manage your templates programmatically using the [NodeJS SDK](/libraries/nodejs) or directly through our API.

| Endpoint                                                                                     | Description         |
| :------------------------------------------------------------------------------------------- | :------------------ |
| <GetBadgeLink label="/v1/templates" href="/api-reference/endpoint/list-templates" />         | Get all templates   |
| <PostBadgeLink label="/v1/templates" href="/api-reference/endpoint/create-template" />       | Create new template |
| <GetBadgeLink label="/v1/templates/:id" href="/api-reference/endpoint/get-template" />       | Get template        |
| <PutBadgeLink label="/v1/templates/:id" href="/api-reference/endpoint/update-template" />    | Update template     |
| <DeleteBadgeLink label="/v1/templates/:id" href="/api-reference/endpoint/delete-template" /> | Delete template     |

## Templating in templates

Templates, supports [Handlebars](https://handlebarsjs.com/) by using the `htmlTemplate` option. See [Templating](/templating/introduction) for more info.
