---
title: "Name and structure your Collaboration documents"
description: "Name and organize documents effectively in Tiptap Collaboration, using unique identifiers and Y.js fragments. More in the docs!"
canonical_url: "https://tiptap.dev/docs/guides/naming-documents"
---

# Name and structure your Collaboration documents

Name and organize documents effectively in Tiptap Collaboration, using unique identifiers and Y.js fragments. More in the docs!

This guide outlines best practices for naming documents and organizing content within a single document, to help you define your own document structure.

For a comprehensive understanding of how to choose document names, you should review our [authorization guide](https://tiptap.dev/docs/collaboration/getting-started/authenticate.md#set-up-authorization), as document naming plays a crucial role in access control as well.

## Structure document names

Tiptap Collaboration uses document names to facilitate collaborative sessions, they serve as unique identifiers that link users to the same document. In theory it could be any string.

While the following example uses an entity's name combined with a unique ID, typical for CMS applications, you're free to adopt any naming convention that suits your application's requirements.

New documents are automatically generated as needed; you only need to provide a string identifier to the provider.

```typescript
const documentName = 'article.123'
```

This naming format allows you to separate out the key details easily:

```typescript
const documentName = 'article.123'

// Splitting the document name into separate parts
const [entityType, entityID] = documentName.split('.')

console.log(entityType) // Output: "article"
console.log(entityID) // Output: "123"
```

## Manage nested documents with fragments

Yjs's fragments are ideal for handling complex documents with distinct sections. This might be relevant in case you want to nest your documents, like for example a blog post with separate `title` and `content` parts.

With fragments, you can use one Y.Doc instance (e.g. one document) and use different editors for its distinct sections.

For example, in this blog post setup:

```typescript
const ydoc = new Y.Doc()

// Title editor
const titleEditor = new Editor({
  extensions: [
    Collaboration.configure({
      document: this.ydoc,
      field: 'title',
    }),
  ],
})

// Content editor
const bodyEditor = new Editor({
  extensions: [
    Collaboration.configure({
      document: this.ydoc,
      field: 'content',
    }),
  ],
})
```

For complex setups with nested fragments, you can directly use a raw Y.js fragment, bypassing the `document` and `field` settings.

```typescript
// a raw Y.js fragment
Collaboration.configure({
  fragment: ydoc.getXmlFragment('custom'),
})
```

To fully grasp how document naming influences access control in Tiptap Collaboration, it's essential to consult our [authorization guide](https://tiptap.dev/docs/collaboration/getting-started/authenticate.md).
