The FrameworkOverview component is a reusable landing page component that allows you to create consistent framework-specific landing pages with customizable content.
import { FrameworkOverview } from "./framework-overview";
export function MyFrameworkOverview() {
return (
<FrameworkOverview
frameworkName="MyFramework"
frameworkIcon={<MyIcon className="h-16 w-16" />}
header="Your main headline"
subheader="Your subheader description"
bannerVideo="https://example.com/video.mp4"
guideLink="/guides/myframework"
initCommand="npx myframework@latest init"
featuresLink="https://features.example.com"
supportedFeatures={[...]}
architectureImage="https://example.com/architecture.png"
liveDemos={[...]}
tutorialLink="/tutorials/myframework" // Optional
/>
);
}frameworkName(string): The name of the framework (e.g., "LangGraph", "CrewAI")frameworkIcon(ReactNode): The icon component for the frameworkheader(string): The main headline textsubheader(string): The descriptive text below the headerbannerVideo(string): URL to the overview videoguideLink(string): Link to the framework's guide/quickstartinitCommand(string): The initialization command to copyfeaturesLink(string): Link to view framework featuresarchitectureImage(string): URL to the architecture diagramliveDemos(LiveDemo[]): Array of live demo configurations
supportedFeatures(FrameworkFeature[]): Array of features to display (if empty, features section is hidden)tutorialLink(string): Link to tutorial (if empty, tutorial card is hidden)
interface FrameworkFeature {
title: string;
description: string;
documentationLink: string;
demoLink: string;
videoUrl: string;
}interface LiveDemo {
type: "saas" | "canvas";
title: string;
description: string;
iframeUrl: string;
}- Conditional Rendering: Features section only shows if
supportedFeaturesarray has items - Dynamic Demo Tabs: Demo toggle buttons only appear if multiple demos are provided
- Flexible Layout: Next steps section automatically adjusts grid layout based on whether tutorial link is provided
- Copy to Clipboard: Init command button includes copy functionality with visual feedback
- Responsive Design: Built with responsive design principles
- Consistent Styling: Maintains consistent visual hierarchy and spacing
See the following files for complete examples:
langgraph.tsx- LangGraph framework implementationcrewai-example.tsx- CrewAI framework implementation example
The component uses Tailwind CSS classes and follows the existing design system. You can customize:
- Colors by modifying the CSS variables
- Spacing by adjusting the margin/padding classes
- Layout by modifying the grid classes
- Typography by changing the text size and weight classes