Create a catch-all route /app/docs/[[...slug]] for docs pages.
In the page, wrap your content in the Page component.
It may vary depending on your content source. You should configure static rendering with generateStaticParams and metadata with generateMetadata.
app/docs/[[...slug]]/page.tsx
import { source } from '@/lib/source';import { DocsPage, DocsBody, DocsTitle, DocsDescription,} from 'styledsea-docs-interface/page';import { notFound } from 'next/navigation';import defaultMdxComponents from 'styledsea-docs-interface/mdx';import { metadataImage } from '@/lib/metadata';export default async function Page({ params,}: { params: { slug?: string[] };}) { const page = source.getPage(params.slug); if (!page) notFound(); const MDX = page.data.body; return ( <DocsPage toc={page.data.toc} full={page.data.full}> <DocsTitle>{page.data.title}</DocsTitle> <DocsDescription>{page.data.description}</DocsDescription> <DocsBody> <MDX components={{ ...defaultMdxComponents }} /> </DocsBody> </DocsPage> );}export async function generateStaticParams() { return source.generateParams();}export function generateMetadata({ params }: { params: { slug?: string[] } }) { const page = source.getPage(params.slug); if (!page) notFound(); return metadataImage.withImage(page.slugs, { title: page.data.title, description: page.data.description, });}