Skip to content

Multi-ecosystem: copy + ecosystem badges - #24

Merged
kaiomp merged 1 commit into
mainfrom
multi-ecosystem-badges
Aug 25, 2026
Merged

Multi-ecosystem: copy + ecosystem badges#24
kaiomp merged 1 commit into
mainfrom
multi-ecosystem-badges

Conversation

@kaiomp

@kaiomp kaiomp commented Aug 25, 2026

Copy link
Copy Markdown
Member

Follow-up to flykit-cc/plugins#23, which made tools.json an ecosystem-neutral registry (ecosystem: "claude-code" | "dsh") and added the first DeepSeek Harness entry, dsh-claude-live. The site still read as Claude-Code-only.

Copy

Grepped the whole site for Claude-Code-only phrasing and reframed the top-level positioning. Claude-Code-specific text that is still accurate (install instructions, /docs, privacy/terms, the plugins section) was left alone.

Where Was Now
app/layout.tsx title flykit — Claude Code plugins for real-world workflows flykit — plugins and tools for coding agents
app/layout.tsx description + JSON-LD Open-source Claude Code plugins for… Open-source plugins and tools for coding agents. Claude Code, DeepSeek Harness, and more.
Hero eyebrow Claude Code Claude Code · DeepSeek Harness
Hero paragraph marketplace of Claude Code plugins registry of plugins and tools for coding agents
Tools section Standalone tools for Claude Code. Not plugins — install via npm or brew. Standalone tools that work alongside your agent. Not plugins, install via npm or brew.
Open-source badge Built for Claude Code Built for coding agents
FAQ "What is flykit?" Claude Code plugin marketplace registry naming both ecosystems + companion tools
site-footer.tsx, llms.txt, llms-full.txt, OG/Twitter alt text, README.md Claude-Code-only blurbs same multi-ecosystem blurb

Ecosystem badges

lib/tools.ts gains an Ecosystem type on Tool plus an ecosystemLabel() helper (claude-code → "Claude Code", dsh → "DeepSeek Harness", defaults to Claude Code for entries predating the field). Rendered with the existing Badge component in its default variant, so it reads as the primary tag next to the outline-variant category tags:

  • components/tool-card.tsx — first badge in the tag row
  • app/tools/[slug]/page.tsx — first badge in the header tag row

No new components, no styling changes.

Drive-by build fix

main does not currently build. /tools/dsh-claude-live prerenders to TypeError: Cannot read properties of undefined (reading 'length') because tools/dsh-claude-live/web.json has no screenshots key and the tool page reads tool.web.screenshots.length unguarded. Verified pre-existing by stashing this branch's changes and rebuilding.

Fixed in one place rather than at each of the three call sites: getTools() now defaults features, useCases, and screenshots to [] when the fetched web.json omits them, so every consumer can keep reading .length.

Verification

npx tsc --noEmit clean, npm run build succeeds, both /tools/ghostcode and /tools/dsh-claude-live prerender. npm run lint is not usable here — next lint is removed in Next 15.5 and drops into an interactive ESLint setup prompt; not addressed in this PR.

Deliberately not touched

No redesign. The plugins section keeps its "Available Plugins" title and Claude Code install command, since .claude-plugin/marketplace.json genuinely is Claude-Code-only. /docs, /privacy, and /terms still describe the Claude Code flow, which is correct for plugins. The rotating hero headline and lib/*-fallback.json are unchanged.

Do not merge — this deploys the live site.

@kaiomp
kaiomp merged commit eec5564 into main Aug 25, 2026
1 check passed
@kaiomp
kaiomp deleted the multi-ecosystem-badges branch August 25, 2026 02:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant