Custom React Components
Add your own React components to enhance your docs
You can extend Fern’s built-in component library by adding your own custom React components. This allows you to create unique, interactive elements that match your documentation needs.
How does it work
Create a React component
Let’s start by creating a components
folder where you can define your react components. Note
that the react components can be defined in .ts
, .tsx
, .js
or .mdx
files.
Why not just use custom CSS and JS instead?
While you can bundle React components as custom JavaScript, using Fern’s built-in React component support provides several key advantages:
No layout shifts or flashes
When adding React components via custom JavaScript, you can’t control when components are rendered relative to the rest of the page content. This often leads to glitchy behavior where components flash or jump as they load asynchronously after the main content.
Faster page load
Custom JavaScript bundles typically include their own copy of the React library, which:
- Increases page load time by duplicating React code that’s already included
- Reduces performance as multiple React instances run on the same page
- Creates larger bundle sizes that users have to download
Improved SEO
Components added via custom JavaScript aren’t server-side rendered, which means search engines can’t index content.