The official browsable catalog for every plugin in the Flyte ecosystem.
67 plugins · 213 modules · Live PyPI stats · Auto-generated icons · Contributor data
The Flyte Plugin Registry provides a unified view of every plugin across the flytekit and flyte-sdk ecosystems. All data is scraped at build time from GitHub and PyPI, producing a fully static site that requires no backend.
Each plugin page includes:
- Module inventory with type classification (task, type transformer, agent, sensor) and base class hierarchy
- Quick Start snippet auto-generated from real import paths
- Download metrics fetched from PyPI (daily, weekly, monthly)
- Version compatibility showing minimum SDK version
- Contributors with GitHub avatars (original author always highlighted)
- Direct links to source code, PyPI page, and documentation
Plugin Detail (Dark)
|
Plugin Detail (Light)
|
Explore
|
Compare
|
Stats
|
Mobile |
| Route | Description |
|---|---|
/ |
Homepage with category grid, popular plugins, animated icon cloud, and ecosystem stats |
/plugins/[slug] |
Full plugin detail: modules, quick start, downloads, releases, contributors |
/explore |
Filterable grid with module type distribution bars and category/tag filtering |
/compare |
Side-by-side comparison table for any two plugins |
/stats |
Ecosystem rankings by downloads and module count |
/category/[slug] |
Category-filtered plugin listing (9 categories) |
The build process runs three scripts sequentially before next build, producing all the data the static site needs:
generate-plugin-data.mjs fetch-pypi-stats.mjs generate-icons.mjs next build
│ │ │ │
▼ ▼ ▼ ▼
plugins.json pypi-stats.json public/icons/ Static HTML
(67 plugins, (weekly downloads (67 SVG icons) (83 pages)
213 modules, for each package)
contributors)
Step 1: Plugin Data (generate-plugin-data.mjs)
Scans flyteorg/flytekit and flyteorg/flyte-sdk on GitHub for plugin directories. For each plugin, it extracts module exports from __init__.py, fetches docstrings and Python base classes from source files, and resolves the top 3 contributors via git log (always including the original author).
Step 2: Download Stats (fetch-pypi-stats.mjs)
Queries the PyPI Stats API for daily, weekly, and monthly download counts of every plugin package.
Step 3: Icon Generation (generate-icons.mjs)
Produces an SVG icon per plugin using a three-tier fallback strategy:
- Brand icon from the
simple-iconspackage (39 plugins) - GitHub organization avatar (24 plugins)
- Auto-generated initials with brand color (4 plugins)
New plugins are auto-discovered without manual mapping.
registry/
├── scripts/
│ ├── generate-plugin-data.mjs # GitHub scraper: plugins, modules, base classes, contributors
│ ├── fetch-pypi-stats.mjs # PyPI download stats
│ └── generate-icons.mjs # SVG icon generation with auto-discovery
├── src/
│ ├── app/ # Next.js App Router (6 page routes)
│ ├── components/
│ │ ├── home/ # Hero, Categories, PopularPlugins, ContributeSection
│ │ ├── plugins/ # PluginCard, PluginDetailClient, ModuleList, RelatedPlugins
│ │ ├── compare/ # ComparePageClient
│ │ ├── explore/ # ExplorePageClient
│ │ ├── stats/ # StatsPageClient
│ │ ├── layout/ # Header, Footer, SearchModal
│ │ └── ui/ # ThemeToggle, IconCloud, Marquee, AnimatedTerminal
│ ├── data/
│ │ ├── plugins.json # Generated: 67 plugins with modules and metadata
│ │ └── pypi-stats.json # Generated: download counts
│ ├── hooks/ # usePyPIMetadata, useGitHubReadme
│ └── lib/
│ ├── constants.ts # Site config, module type colors, categories
│ ├── types.ts # Plugin, PluginModule, StatsRecord interfaces
│ └── utils.ts # formatDownloads, formatNumber
├── public/icons/plugins/ # 67 auto-generated SVG icons
└── .github/workflows/ # GitHub Pages deployment + scheduled data updates
# Install
npm install
# Full build (scrape data + generate icons + static export)
npm run build
# Development
npm run dev
# Individual data scripts
npm run generate # Re-scrape plugin data from GitHub
npm run fetch-stats # Refresh PyPI stats
npm run generate-icons # Regenerate iconsThe dev server runs at http://localhost:3000. Build scripts require network access to the GitHub and PyPI APIs.
| Layer | Technology |
|---|---|
| Framework | Next.js 16 with App Router and Turbopack |
| UI | React 19 with View Transitions API for theme switching |
| Styling | Tailwind CSS 4 with CSS custom properties |
| Animation | Motion (Framer Motion) |
| Search | Fuse.js for client-side fuzzy matching |
| Icons | simple-icons for brand SVGs |
| Deployment | Static export on GitHub Pages (no server required) |
This project is part of the Flyte ecosystem.
To add a new plugin, publish it as a flytekit or flyte-sdk plugin following the Flyte contributing guide. The registry discovers new plugins automatically on the next build.
To improve the registry itself, fork this repo and open a PR. Please run npm run lint and npm run build before submitting.
Apache 2.0, same as Flyte.
This is an independent community project, not officially affiliated with or endorsed by Flyte or Union.ai. The Flyte name and logo are trademarks of their respective owners and are used here solely to describe the origin of the plugins cataloged.






