# Zucms

## Overview

> Category: Models

---

## Pages

- [Introduction](https://docs.zucms.co/introduction)

### API

- [RESTful API](https://docs.zucms.co/api/rest)
- [Typescript SDK](https://docs.zucms.co/api/typescript)

### Getting Started

- [Quick Start](https://docs.zucms.co/getting-started/quick-start)
- [Core Concepts](https://docs.zucms.co/getting-started/core-concepts)

### Models

- [Overview](https://docs.zucms.co/models/overview)
- [Field Types](https://docs.zucms.co/models/field-types)
- [Relations](https://docs.zucms.co/models/relations)

### Content

- [Working with Entries](https://docs.zucms.co/content/working-with-entries)
- [Localization](https://docs.zucms.co/content/localization)

### Access & Security

- [Roles](https://docs.zucms.co/access-security/roles)
- [Access Policies](https://docs.zucms.co/access-security/access-policies)

### Organization

- [Members & Roles](https://docs.zucms.co/organization/members-roles)
- [Audit Log](https://docs.zucms.co/organization/audit-log)
- [Billing & Plans](https://docs.zucms.co/organization/billing-plans)

---

# Models Overview

A model is the schema for a type of content. You define it once in the Model Builder and Zucms generates the editor UI, API endpoints, and validation automatically.

## Model types

### Collection

A collection holds any number of entries. It is the most common model type.

Use it for: blog posts, products, team members, FAQs.

### Singleton

A singleton holds exactly one entry. There is no list view — the editor opens directly on the record.

Use it for: homepage settings, footer links, SEO defaults.

### Taxonomy

A taxonomy is a hierarchical collection. Entries can have parent–child relationships within the same model.

Use it for: categories, tags, navigation menus.

## Creating a model

1. Open **Model Builder** in the sidebar.
2. Click **New Model**.
3. Choose a type and enter a display name.
4. The technical name is derived automatically (e.g. `Blog Post` → `blog_post`). You can override it.
5. Optionally add a description and pick an icon.
6. Save — the model appears in the sidebar under **Content**.

## Technical name rules

Technical names are used in the API and as keys in the database. They:
- contain only lowercase letters, digits, and underscores.
- cannot start or end with an underscore.
- are limited to 64 characters.
- cannot use reserved names like `id`, `data`, `created_at`.

```
Blog Post  →  blog_post
FAQ Item   →  faq_item
```

## Model Map

The **Model Builder → Map** view shows all models and their relations as a visual graph. It is a read-only overview — editing still happens in the individual model view.

## Deleting a model

Deleting a model removes its schema and **all its entries permanently**. This action cannot be undone. The delete button is in the **Danger Zone** section at the bottom of the model settings.
