# Docs
URL: /docs/apps/docs
Docs powered-by Fumadocs. Manage content with MDX.
[ship.pluv.io](https://ship.pluv.io) comes with a prebuilt docs powered by [Fumadocs](https://fumadocs.com/). Providing docs for your app can be a great way to help your users get started with your app.
## Writing content
The content for the docs are powered by [Content Collections](https://content-collections.dev/) and [MDX](https://mdxjs.com/). To write or edit content, you will need to update the content in the `/content/docs` directory. This directory uses file-based routing to determine the URL of the page:
* `index.mdx` files will map to a `/` URL path
* e.g. if you have `/content/docs/my-docs/index.mdx`, the URL will be `/docs/my-docs`
* `[name].mdx` files will map to a `/[name]` URL path
* e.g. if you have `/content/docs/my-docs/my-page.mdx`, the URL will be `/docs/my-docs/my-page`
* Folders will create a sidebar group. So if you have `/content/docs/my-docs/my-page/index.mdx`, the URL will be `/docs/my-docs/my-page` and the page will be grouped under the "My Docs" sidebar group (assuming that "My Docs" is the title you gave the group).
For any page, you can provide a `title` and `description` in the frontmatter. These will be used to display the title and description of the page in the sidebar and on the page itself.
You can also provide a `meta.json` file in the same directory to explicitly specify the order of the pages in the sidebar.
```json title="meta.json"
{
"pages": ["my-page", "my-other-page"]
}
```
To view the full fumadocs documentation on routing, see [their routing documentation](https://fumadocs.dev/docs/ui/page-conventions).
### Adding custom components
[MDX](https://mdxjs.com/) allows you to use custom React components in your content. To add your own custom components, simply append your component to the `useMDXComponents` function in `/src/mdx-components.tsx`.
```tsx title="src/mdx-components.tsx"
import { MyComponent } from "@/components/my-component";
import type { MDXComponents } from "mdx/types";
export const useMDXComponents = (components: MDXComponents = {}): MDXComponents => ({
...components,
MyComponent,
});
```
Then you can use your component in your content by importing it like so:
```mdx title="content/docs/my-docs/my-page.mdx"
## My custom title
Below is my custom component.
```
See that you do not need to import the component within your page's content.