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

# Projects Overview

> Workspace containers for content, components, and assets

Projects are workspace containers within an organization that group related content and assets. Each project maintains its own set of components, content types, content, *and* assets.

## The Project Object

<ParamField body="id" type="string">
  Unique identifier (UUID)
</ParamField>

<ParamField body="organizationId" type="string">
  Parent organization ID
</ParamField>

<ParamField body="name" type="string">
  Project name
</ParamField>

<ParamField body="slug" type="string">
  URL-friendly project identifier
</ParamField>

<ParamField body="description" type="string">
  Project description
</ParamField>

<ParamField body="status" type="string">
  Status: `active`, `archived`, or `deleted`
</ParamField>

<ParamField body="environment" type="string">
  Environment: `production`, `staging`, or `development`
</ParamField>

<ParamField body="settings" type="object">
  Project settings including locales, platforms, and CDN configuration
</ParamField>

<ParamField body="dependencies" type="object[]">
  Project dependencies with projectId and version
</ParamField>

<ParamField body="permissions" type="object">
  Project-level permissions and role configurations
</ParamField>

<ParamField body="metadata" type="object">
  Additional project metadata including createdBy and tags
</ParamField>

<ParamField body="createdAt" type="string">
  Creation timestamp (ISO 8601 format)
</ParamField>

<ParamField body="updatedAt" type="string">
  Last update timestamp (ISO 8601 format)
</ParamField>

### Settings Object

| Field                | Type      | Description                                                      |
| -------------------- | --------- | ---------------------------------------------------------------- |
| `defaultLocale`      | string    | Default content locale                                           |
| `supportedLocales`   | string\[] | Available locales                                                |
| `defaultPlatform`    | string    | Default platform for CMS preview (`mobile`, `tablet`, `desktop`) |
| `supportedPlatforms` | string\[] | Available platforms for content preview                          |
| `thumbnailUrl`       | string    | Project thumbnail image URL for CMS display                      |
| `cdnDomain`          | string    | Custom CDN domain                                                |

### Example Object

```json theme={null}
{
  "id": "proj123",
  "organizationId": "org123",
  "name": "Marketing Website",
  "slug": "marketing-website",
  "description": "Main marketing website content",
  "status": "active",
  "environment": "production",
  "settings": {
    "defaultLocale": "en-US",
    "supportedLocales": ["en-US", "es-ES"],
    "defaultPlatform": "desktop",
    "supportedPlatforms": ["desktop", "mobile", "tablet"],
    "thumbnailUrl": "https://cdn.acme.com/thumbnails/marketing-website.png",
    "cdnDomain": "cdn.acme.com"
  },
  "dependencies": [
    {
      "projectId": "proj456",
      "version": "2.0.0"
    }
  ],
  "permissions": {
    "roles": {
      "admin": ["user123"],
      "editor": ["user456"]
    },
    "public": false
  },
  "metadata": {
    "createdBy": "user123",
    "tags": ["marketing", "website"]
  },
  "createdAt": "2024-03-20T10:00:00Z",
  "updatedAt": "2024-03-20T10:00:00Z"
}
```

## Project Structure

Projects contain the following resources:

* **Collections** - Organizational groups for components
* **Components** - View and layout components with versions
* **Content Types** - Schemas defining content structure
* **Content** - Actual content entries
* **Assets** - Media files and images
* **Saved Searches** - Reusable search configurations
* **Packages** - Versioned snapshots of components

## Project Dependencies

Projects can depend on other projects, allowing you to share components and content types across projects. Dependencies are specified with a project ID and semantic version.

```json theme={null}
{
  "dependencies": [
    {
      "projectId": "proj456",
      "version": "2.0.0"
    }
  ]
}
```

When a package is created, it snapshots the current project dependencies, ensuring consistent behavior across deployments.
