Skip to main content
CushLabs logoCUSHLABS.AI
Back to Portfolio

AI Portfolio

A static portfolio system that syncs project data from GitHub repos into a filterable showcase

Video Walkthrough

Video Walkthrough

Screenshots

1 / 10
Portfolio homepage with featured projects section
Portfolio grid with category filtering
Portfolio grid in dark mode
Project detail page with image carousel
Project detail page — problem and solution sections
Project detail page — key features and metrics
Project detail page with tech stack sidebar
Featured projects showcase page
Mobile responsive portfolio grid
Spanish language version of the portfolio

The Challenge

Maintaining a portfolio across dozens of GitHub repositories creates a content management problem. Project descriptions, tech stacks, and status information scatter across READMEs and repo settings with no unified display layer. A separate portfolio site inevitably falls out of sync with the actual work.

The Solution

Each repository owns its portfolio entry through a version-controlled PORTFOLIO.md file at its root, keeping content co-located with the code it describes. A TypeScript sync script fetches and parses every file via the GitHub API, validates it through a Zod schema with backward-compatible transforms, and outputs a single static JSON file — with sync errors and warnings auto-reported as deduplicated GitHub Issues. The portfolio page drives search, category filtering, and sort entirely through URL params for shareable views, and Next.js serves statically generated pages with zero runtime API calls.

Key Features

  • 21 projects aggregated from GitHub repos into a single filterable interface
  • Client-side search, category filtering, and sort — all via shareable URL params
  • Zero runtime API calls — fully static, sub-second page loads
  • Content managed through PORTFOLIO.md files co-located with source code
  • Sync issue notifications — errors and warnings auto-reported as GitHub Issues with deduplication and auto-close
  • Featured project showcase with curated top-6 selection
  • Dark mode with system preference detection

Results

  • 21 projects browsable by category with instant client-side search, filter, and sort
  • Zero runtime API calls — fully static pages with sub-second loads
  • Featured showcase highlighting the 6 strongest projects with detailed breakdowns
  • Filtered views shareable via URL — bookmarkable category and sort combinations

Related Projects

Have a similar challenge?

Let's talk about how a solution like this could work for your team. Free call, no pitch.

Book a Free Call