Skip to main content

📊 Projects Component

Showcase your projects with advanced filtering, search, categorization, and multiple data loading options. Perfect for portfolios, documentation sites, and project galleries.

🔄 Data Loading Options

📁 Static Data Loading

Projects loaded from static JSON/YAML files. Best for:

  • Personal portfolios
  • Static documentation sites
  • Small to medium project collections
  • Fast loading and offline support
🎯 Live Projects Available! The interactive Projects component is running live at /projects with real data. See real-time data loading and filtering in action! This demo shows the configuration and usage patterns.

⚡ Component Features

🔍 Search & Filtering

  • ✅ Real-time text search across all fields
  • ✅ Category-based filtering
  • ✅ Tag-based filtering
  • ✅ Status filtering (Active, Development, Archived)
  • ✅ Featured projects highlighting

🎨 Display Options

  • ✅ Grid and list view options
  • ✅ Responsive design
  • ✅ Customizable card layouts
  • ✅ Theme-aware styling
  • ✅ Loading states and error handling

⚙️ Configuration Options

Basic Configuration

import Projects from '@site/src/components/Projects';

// Static data example
<Projects 
  projectsData={staticProjectsData}
  enableSearch={true}
  enableFiltering={true}
  showCategories={true}
  gridColumns={3}
/>

// HTTP API example
<Projects 
  apiEndpoint="/api/projects"
  fallbackToStatic={true}
  cacheTimeout={300000} // 5 minutes
  enableSearch={true}
  enableFiltering={true}
/>

// Minimal configuration
<Projects projectsData={projects} />

Data Schema (projects.yml)

projects:
  - id: "project-id"
    name: "Project Name"
    description: "Project description"
    url: "https://github.com/user/repo"
    tags: ["React", "TypeScript"]
    category: "library"
    featured: true
    status: "active"
    # ... more fields

🔗 Integration & Documentation

Learn more about implementing and customizing the Projects component