--- import SiteLayout from '../components/SiteLayout.astro'; import fixture from '../data/plugins-fixture.json'; const snapshotUrl = 'https://assets.herdr.dev/plugins/index.json'; // Seed the page server-side from the public R2 snapshot so `bun run dev` and // the production build both render real data immediately. If the live fetch // fails, dev falls back to a local fixture for offline design; production seeds // empty and lets the client fetch fill it (never fake data). let liveData = null; try { const res = await fetch(snapshotUrl); if (res.ok) liveData = await res.json(); } catch { // ignore: handled by the fallbacks below } const initialData = liveData ?? (import.meta.env.DEV ? fixture : null); const initialIsFixture = !liveData && import.meta.env.DEV; // A card is a repository; a plugin is a validated manifest inside it. A monorepo // with three manifests is one card and three plugins, so the two counts differ // and both are stated. `source.totalCount` is the raw GitHub topic search and // still includes blacklisted and manifest-less repositories, so it is not used. const repos = initialData?.plugins ?? []; const repositoryCount = initialData?.repositoryCount ?? repos.length; const pluginCount = initialData?.pluginCount ?? repos.reduce((n, repo) => n + (repo.manifests?.length || 1), 0); const apiUrl = import.meta.env.DEV ? null : snapshotUrl; ---
the marketplace

Built by the herd.

Community plugins published on GitHub, discovered automatically from the herdr-plugin topic. Install any of them with herdr plugin install, or publish your own and get listed.

Listings aren't reviewed by Herdr, so install at your own discretion. Trust guidance →

Loading plugins…

# publish

Want your plugin listed?

Add the GitHub topic herdr-plugin to a public repository with a herdr-plugin.toml manifest. The index picks it up on the next refresh. No submission, no review queue.