# Templates

Source: https://modulify.ai/docs/projects/templates

Browse the template gallery and clone one into your own workspace.

Templates are finished, published Modulify sites you can copy. Cloning one gives you a real project of your own that you then change in chat like any other.

## Before you begin

You need to be signed in with a verified email. The **Clone in Modulify** button is disabled until both are true. A clone becomes a new site in your workspace, so it needs a free site slot on your plan.

## Browse the gallery

Open **Templates** in the sidebar, or go to `/dashboard/templates`. The page is titled **Templates** with the line *Start from a ready-made template and make it yours.*

Cards load as you scroll. Each shows the site thumbnail, the template name and its category.

The **Search templates** box at the top right matches on name, description and category. Searching writes your term into the page URL, so a search is a link you can share or bookmark. If nothing matches you get an empty state titled **No results** reading *Try a different name or clear search.* When the gallery itself is empty it reads **No templates** with *Check back soon for new templates.*

The same gallery appears on the dashboard home page under the **Modulify templates** tab. That tab is selected by default when your workspace has no projects yet.

## Look at one before cloning

Clicking a card from the Templates page opens its detail page at `/dashboard/templates/<slug>`, with a breadcrumb back to **Templates**.

The detail page shows the template name, its category as a badge, and a live frame of the actual published site rather than a screenshot. Scroll past it for **More like this**, a row of related templates.

Clicking a card on the dashboard home page opens a preview panel over the page instead, with **View full details** to jump to the full page.

## Clone it

On the detail page, choose **Clone in Modulify**. The button shows a spinner while the copy is made, then drops you straight into your new project.

**Open Original** sits next to it and opens the template's live site in a new tab. It only appears for templates that are published.

You can also clone without opening the detail page. The three dots menu on a template card holds:

- **Copy publish link**, which copies the live address of the template
- **Open in new tab**, which opens that address
- **Clone**, which does the same thing as the detail page button

## What you get

The clone is a new project in your current workspace named after the template with **(Cloned)** on the end. It arrives unpublished, with no custom domain, and it is not itself shared or cloneable. It carries the template's pages, files, settings and languages.

Whether the template's database content, uploaded files and environment variables come with it is decided by whoever published the template, in that project's share settings. See [Sharing and cloning](/docs/projects/sharing-and-cloning) for the controls on your own side.

If your workspace has no site slot left, the clone stops and you are offered an extra site or an upgrade, exactly as a new project would be.

## Read the gallery from code

The same gallery is available as a plain HTTP endpoint, so you can list the templates from a script or from a site of your own.

```bash
curl https://api.modulify.ai/templates
```

There is nothing to authenticate. No key, no header and no Modulify account are involved, and the request is a `GET` with no parameters.

The answer uses the standard Modulify envelope, with the templates in `data`:

```json
{
    "success": true,
    "message": "Public templates listed successfully.",
    "data": [
        {
            "slug": "cutout-template",
            "image": "https://cdn.modulify.ai/previews/6a7f2ab5bb95d1de460e9568.webp",
            "name": "Maren Okonkwo",
            "category": "portfolio",
            "previewLink": "https://cutout-template.modulify.website"
        }
    ],
    "code": 200,
    "version": "0.0.1414"
}
```

Each entry carries five fields.

| Field | What it holds |
|---|---|
| `slug` | The template's identifier, and the last part of its detail page URL |
| `image` | The thumbnail on the CDN, or `null` when the template has no picture yet |
| `name` | The name shown on the card |
| `category` | The category badge, or `null` when the template has none |
| `previewLink` | The template's live site, its custom domain when it has one and its free address otherwise |

`version` is the API build that answered. Treat a call as failed unless the HTTP status is ok and `success` is `true`.

The list holds every published template in the gallery, newest first, and it is the same set the Templates page renders. To send someone to one of them, put its `slug` on the end of `/dashboard/templates/`.

:::note
The response is cached in memory on the API, so a template that has just changed can take a moment to show its new name or thumbnail here.
:::

## Next

- [Site chat](/docs/build/site-chat) is how you change the clone once you are in it.
- [Sharing and cloning](/docs/projects/sharing-and-cloning) covers making your own project cloneable.
- [Publish a site](/docs/publish/publish-a-site) takes your version live.