Fumadocs

Tanstack Start

Setup Fumadocs on Tanstack Start.

Getting Started

Before continuing, make sure to configure:

  • Tailwind CSS 4.

Installation

npm i fumadocs-core fumadocs-ui fumadocs-mdx @types/mdx

Then, configure Fumadocs MDX on your Tanstack Start app. Make sure essential files like lib/source.ts are created correctly.

Styles

Add the following to your Tailwind CSS file:

styles/app.css
@import 'tailwindcss';
@import 'fumadocs-ui/css/neutral.css';
@import 'fumadocs-ui/css/preset.css';

Create Pages

Create the following routes:

import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared';

export function baseOptions(): BaseLayoutProps {
  return {
    nav: {
      title: 'Tanstack Start',
    },
  };
}

Wrap your entire app under Fumadocs providers:

__root.tsx
import {
  createRootRoute,
  HeadContent,
  Outlet,
  Scripts,
} from '@tanstack/react-router';
import * as React from 'react';
import { RootProvider } from 'fumadocs-ui/provider/base';
import { TanstackProvider } from 'fumadocs-core/framework/tanstack';

export const Route = createRootRoute({
  component: RootComponent,
});

function RootComponent() {
  return (
    <RootDocument>
      <Outlet />
    </RootDocument>
  );
}

function RootDocument({ children }: { children: React.ReactNode }) {
  return (
    <html suppressHydrationWarning>
      <head>
        <HeadContent />
      </head>
      <body className="flex flex-col min-h-screen">
        <TanstackProvider>
          <RootProvider>{children}</RootProvider>
        </TanstackProvider>
        <Scripts />
      </body>
    </html>
  );
}

Done

You can start writing documents at content/docs:

content/docs/index.mdx
---
title: Hello World
---

I love Fumadocs

How is this guide?

Last updated on