Inline components
Declare components directly in your MDX file:Constraints
React components in Mintlify run in a sandboxed MDX environment with the following constraints:- React hooks are pre-injected:
useState,useEffect,useRef,useCallback,useMemo,useContext, anduseReducerare available without importing them. - No external npm packages: Third-party packages (for example,
lodash,axios,date-fns) cannot be imported. Use browser built-ins or write the logic inline. - No default exports: Use named exports (
export const MyComponent = ...). Default exports (export default) are not supported. - No cross-snippet imports: Snippet files cannot import other snippet files. Import all dependencies directly in the parent MDX file.
- No JSON imports: Importing
.jsonfiles is not supported.
Import components
Component files must be in the/snippets/ folder. Learn more about reusable snippets.
Nested imports are not supported. Import all referenced components directly into the parent MDX file.
snippets/:
/snippets/color-generator.jsx
Considerations
- SEO: Search engines may not fully index client-rendered dynamic content.
- Initial load: Visitors may see a flash before components render.
- Accessibility: Ensure screen readers announce dynamic content changes.
- Optimize dependency arrays: Only include necessary dependencies in
useEffect. - Memoize expensive operations: Use
useMemooruseCallbackwhere appropriate. - Reduce re-renders: Break large components into smaller ones.
- Lazy loading: Lazy load complex components to improve initial page load.