# Multi-page documents
> Pages sidebar plus drag-to-reorder. The reducer handles page math; you compose primitives.
Source: https://docs.docmosaic.com/docs/examples/multi-page
Real documents are rarely one page. `Editor.Pages` is the left rail - a thumbnail per page, click to switch, drag the handle to reorder, "+" to add, "×" to delete. The reducer rewrites every section's `page` reference when pages move, so you never have to touch the math.
## Code
```tsx
'use client';
import { Editor } from '@docmosaic/react';
import { createDocument, createPage } from '@docmosaic/core';
import '@docmosaic/react/styles.css';
// Seed with three blank pages so the rail is interesting on first paint.
const seed = (() => {
const doc = createDocument({ name: 'Three-pager' });
return {
...doc,
pages: [createPage(), createPage(), createPage()],
totalPages: 3,
};
})();
export default function MultiPageEditor() {
return (
);
}
```
The sidebar lives flush-left because `Editor.Root` arranges children - `Pages` is always placed to the left of `Canvas` regardless of source order, so you don't need a wrapping layout.
Drop the add-page button for fixed-format documents (like single-page invoices) by passing the
`hideAddPage` prop to `Editor.Pages`. The user can still reorder existing pages - just not add
or remove them.
## Horizontal rail
For dashboards or in-form embeds, switch the rail to horizontal:
```tsx
```
## Try it
## Related
- [Editor.Pages](/docs/primitives/pages) - full primitive reference
- [Editor.PageThumbnail](/docs/primitives/page-thumbnail) - render thumbs in your own layout
- [Document model](/docs/concepts/document-model) - how pages and sections relate