Fumadocs

Waku

Setup Fumadocs on Waku.

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 Waku app. Make sure essential files like lib/source.ts are created correctly.

Styles

Add the following to your Tailwind CSS file:

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

Create Pages

Create a file for sharing layout props:

src/lib/layout.shared.tsx
import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared';

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

Create the following routes:

import type { ReactNode } from 'react';
import { DocsLayout } from 'fumadocs-ui/layouts/docs';
import { source } from '@/lib/source';
import { baseOptions } from '@/lib/layout.shared';

export default function Layout({ children }: { children: ReactNode }) {
  return (
    <DocsLayout {...baseOptions()} tree={source.pageTree}>
      {children}
    </DocsLayout>
  );
}

export const getConfig = async () => {
  return {
    render: 'static',
  };
};

Finally, wrap your entire app under Fumadocs providers:

'use client';
import type { ReactNode } from 'react';
import { WakuProvider } from 'fumadocs-core/framework/waku';
import { RootProvider } from 'fumadocs-ui/provider/base';

export function Provider({ children }: { children: ReactNode }) {
  return (
    <WakuProvider>
      <RootProvider>{children}</RootProvider>
    </WakuProvider>
  );
}

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