---
title: Getting Started
description: Create a Geistdocs project and start writing documentation
type: guide
summary: Create a Geistdocs project, run it locally, and edit your first documentation page.
related:
  - /docs/configuration
  - /docs/migration
  - /docs/syntax
  - /docs/deployment
---

# Getting Started



Create a Geistdocs site with the package CLI, then edit the generated content and configuration files. If you already have a Fumadocs or custom Geist docs site, read [Migration guide](/docs/migration) before moving route adapters and middleware behavior.

<CopyPrompt text="Create a Geistdocs project with pnpm dlx @vercel/geistdocs init --name my-docs. Then open my-docs, run pnpm dev, and explain which files I should edit first: geistdocs.tsx, content/docs, content/docs/meta.json, and components/geistdocs/mdx-components.tsx.">
  Create a Geistdocs project with `pnpm dlx @vercel/geistdocs init --name my-docs`. Then open `my-docs`, run `pnpm dev`, and explain which files I should edit first: `geistdocs.tsx`, `content/docs`, `content/docs/meta.json`, and `components/geistdocs/mdx-components.tsx`.
</CopyPrompt>

## Prerequisites

Before you begin, install:

* Node.js 18 or later
* pnpm, npm, or another package manager
* Git

## Create a project

Run the Geistdocs CLI from an empty parent folder:

```bash title="Terminal"
pnpm dlx @vercel/geistdocs init --name my-docs
```

You can also use npm:

```bash title="Terminal"
npx @vercel/geistdocs init --name my-docs
```

The CLI copies the template bundled in the package, rewrites the generated app to depend on the same `@vercel/geistdocs` version, installs dependencies, copies `.env.example` to `.env.local`, and initializes Git.

## Understand generated dependencies

Generated projects include `@vercel/geistdocs`, `ai` v6, and `@ai-sdk/react` v3. Geistdocs uses those AI SDK packages for Ask AI, including the chat client transport and `createChatRoute` server behavior.

Update Ask AI by updating `@vercel/geistdocs`, not by copying package chat internals into the app. If your project uses the AI SDK directly for separate product features, keep that code compatible with the app's installed AI SDK version; package-owned Ask AI does not need to match another consumer project's `ai` version.

## Start the development server

Open the generated project and start Next.js:

```bash title="Terminal"
cd my-docs
pnpm dev
```

Open `http://localhost:3000` in your browser.

## Edit your first page

Docs live in `content/docs`. Edit the overview page:

```mdx title="content/docs/index.mdx"
---
title: Overview
description: Learn how to use my project.
---

My project helps developers build with clear documentation.

## Start here

Add the first workflow you want readers to complete.
```

Add more pages by creating new `.mdx` files in `content/docs`.

## Update the sidebar

Use `content/docs/meta.json` to control page order and groups:

```json title="content/docs/meta.json"
{
  "title": "Documentation",
  "root": true,
  "pages": ["index", "getting-started", "---Guides---", "deploy"]
}
```

## Configure the site

Use `geistdocs.tsx` to customize the site shell:

```tsx title="geistdocs.tsx"
export const title = "My Documentation";

export const nav = [
  { label: "Docs", href: "/docs" },
  { label: "GitHub", href: "https://github.com/my-org/my-repo" },
];
```

Read [Configuration](/docs/configuration) for the full configuration surface.

## Update Geistdocs

For package-based projects, `geistdocs update` updates the `@vercel/geistdocs` package version. It does not overwrite your local content or adapter files.

```bash title="Terminal"
pnpm exec geistdocs update
```

Review and test dependency changes before committing.


---

For a semantic overview of all documentation, see [/sitemap.md](/sitemap.md)

For an index of all available documentation, see [/llms.txt](/llms.txt)

For agent-facing discovery, including API and MCP surfaces, see [/agents.md](/agents.md)