agentsclimarketplace

Backlink kit

Skill Leonewu/backlink-kit/backlink-kit

Manual-only backlink footer and directory submission workflow for any web product repo. Use only when the user explicitly invokes `backlink-kit` or `$backlink-kit`; do not use implicitly for generic SEO, backlink, footer, directory, or submission tasks.From its SKILL.md

Install
npx -y skills add Leonewu/backlink-kit --skill backlink-kit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

13.4 KB, ~3.3k tokens by cl100k_base, as published. Nobody here has run it

Backlink Kit

Purpose

Use this skill from inside a web product project to:

  • infer product submission facts from the repo;
  • merge and maintain a footer backlink carousel without losing existing external badges;
  • generate directory submission Markdown and a local copy-friendly HTML page;
  • update directory hrefs after submissions are approved.

This is manual-only. If the user did not explicitly say backlink-kit or $backlink-kit, do not use this skill. If the user only asks for submission materials, listing URLs, or backlink research, do not create new visible site UI.

Product Discovery

Run from the project root when possible.

  1. Read repo instructions first (AGENTS.md, CLAUDE.md, or equivalent).
  2. Infer product facts from existing source before asking:
    • product name: SEO constants, metadata helpers, app config, landing page H1, package name, README;
    • canonical URL/domain: SEO constants, sitemap/robots, env examples, deployment config, README;
    • tagline/short copy: landing page hero, metadata descriptions, README;
    • logo/screenshot: favicon, app icon, OG image, landing image;
    • support email: SEO constants, footer, contact page, env examples;
    • key features: landing page sections, pricing/features pages, README.
  3. If product name or website URL cannot be confidently inferred, ask the user before generating materials or directory URLs.
  4. For generated copy, always include a long description with a Key features include: section and bullet list.

Existing Backlink Merge Rules

Do not overwrite or drop existing footer links.

Before editing, search the repo for current backlink/footer data:

rg -n "Featured on|Listed on|footerBacklinks|backlink|badge|turbo0|findly|showmebest|newtool|startupfa|toolfame|openhunts|agenthunter|acidtools|productwing|fazier|unitelist|producthunt|uneed|peerlist|peerpush|launchigniter|twelve\.tools|wired\.business" .

Then:

  1. Preserve all existing external badges and custom links unless the user explicitly asks to remove them.
  2. Dedupe by directory identity, not by exact URL. For example turbo0.com/ and turbo0.com/item/product-slug are the same directory entry.
  3. If a known directory entry already exists, update only the href/target when needed; preserve a working badge URL, label, and custom styling.
  4. If the project already has unrelated partner/outbound badges, keep them in the same managed list or a clearly named extra list.
  5. Never replace a user-supplied approved listing URL with a guessed one.
  6. Verify any new dark badge URL returns an actual image. If it returns HTML, 404, or a broken image, use the known original badge or a text fallback.
  7. If no existing footer, backlink strip, featured-on section, or partner badge area exists, ask before creating a new visible footer carousel. A new carousel changes public UI and needs explicit approval.

Footer Implementation Rules

Adapt to the project's framework and design system. Do not assume Next.js or a particular router.

Before creating a new visible footer carousel, summarize the proposed placement and ask for approval unless the user explicitly requested that new carousel. If an existing footer/backlink area exists, merge or update in place.

Recommended behavior:

  • Show the backlink footer on public marketing/content pages.
  • Hide it from app/workbench/auth/admin pages unless the project already exposes a global footer there.
  • Render the list twice for infinite marquee: first group accessible, duplicate group aria-hidden="true".
  • Set duplicate links tabIndex={-1}.
  • Use target="_blank" and rel="noopener noreferrer" for third-party directory links.
  • Default badges to muted/gray in dark themes; on hover/focus of the strip, restore true badge color.
  • Pause animation on hover/focus.
  • Respect prefers-reduced-motion with a static scrollable list.
  • Keep stable dimensions so slow remote badges cannot collapse the marquee.

Example data shape:

export type FooterBacklink = {
  name: string;
  label: string;
  href: string;
  badgeSrc?: string;
  kind?: "badge" | "text";
};

Example image attributes:

<img src={badgeSrc} alt={label} loading="eager" decoding="async" fetchPriority="low" />

Directory URL Rules

Generate these as candidate URLs from product name and website domain, but warn the user to verify them after submission. Some directories create opaque IDs that cannot be inferred.

Definitions:

  • productSlug: lowercase product name in kebab-case, for example Better Dating Photos -> better-dating-photos.
  • domain: canonical host without protocol or www, for example betterdatingphotos.com.
  • domainStem: domain without TLD and dots, for example betterdatingphotos.com -> betterdatingphotos.
  • productHuntPostId, peerlistHandle, peerlistProjectId, and launchRank: platform-assigned values that cannot be inferred safely. Reuse them only when found in an existing approved link or platform-provided embed snippet.
DirectoryCandidate target ruleBadgeNotes
Turbo0https://turbo0.com/item/{productSlug}https://img.turbo0.com/badge-listed-dark.svgProduct page, not homepage
Findly.toolshttps://findly.tools/{productSlug}?utm_source={productSlug}https://findly.tools/badges/findly-tools-badge-dark.svgProduct page
yo.directoryhttps://yo.directory/https://cdn.prod.website-files.com/65c1546fa73ea974db789e3d/65e1e171f89ebfa7bd0129ac_yodirectory-featured.pngUse homepage until listing URL is known
ShowMeBestAIhttps://showmebest.aihttps://showmebest.ai/badge/feature-badge-dark.webpNo trailing slash
NewTool.sitehttps://newtool.site/item/{productSlug}https://newtool.site/badges/newtool-dark.svgProduct page
Startup Famehttps://startupfa.me/s/{domain}?utm_source={domain}https://startupfa.me/badges/featured/dark.webpMay require opaque suffix such as -546; verify approved URL
Dang.aihttps://dang.ai/https://assets.dang.ai/badges/dang-verified-dark.pngUse homepage until listing URL is known
Submit AI Toolshttps://submitaitools.org/https://submitaitools.org/static_submitaitools/images/submitaitools.pngUse homepage until listing URL is known
ToolFamehttps://toolfame.com/item/{productSlug}https://toolfame.com/badge-dark.svgProduct page
AIDirshttps://aidirs.org/https://aidirs.org/badges/badge-listed-dark.svgUse homepage until listing URL is known
DirOnixhttps://dironix.com/https://dironix.com/bage.pngOriginal badge; tested dark variants have returned HTML
Acid Toolshttps://acidtools.com/ai/{domainStem}https://acidtools.com/assets/images/badge-dark.pngUses compact domain stem, not product slug
Product Winghttps://productwing.com/product/{domainStem}https://productwing.com/assets/images/badge-dark.pngUses compact domain stem
Dofollow.Toolshttps://dofollow.tools/https://dofollow.tools/badge/badge_dark.svgUse homepage until listing URL is known
DeepLaunch.iohttps://deeplaunch.io/https://deeplaunch.io/badge/badge_dark.svgUse homepage until listing URL is known
Fazierhttps://fazier.com/launches/{domain}https://fazier.com/api/v1//public/badges/launch_badges.svg?badge_type=launched&theme=darkUses full domain
OpenHunts Clubhttps://openhunts.comhttps://cdn.openhunts.com/badges/club.webpReplaces AgentHunter, which may be unreachable
Days Launchhttps://dayslaunch.com/https://dayslaunch.com/badages-awards.svgOriginal badge; tested dark variants have returned HTML
Unite Listhttps://unitelist.com/product/{domainStem}https://unitelist.com/assets/images/badge-dark.pngUses compact domain stem
IndieAI Directoryhttps://indieai.directory/text fallbackUse text badge unless a real badge is provided
Product Hunthttps://www.producthunt.com/products/{productSlug}https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id={productHuntPostId}&theme=darkPost ID is opaque; copy the official embed snippet after launch
Uneedhttps://www.uneed.best/tool/{productSlug}https://www.uneed.best/EMBED1B.pngProduct page; original badge may need browser verification if automated checks hit TLS errors
Peerlisthttps://peerlist.io/{peerlistHandle}/project/{productSlug}https://peerlist.io/api/v1/projects/embed/{peerlistProjectId}?showUpvote=true&theme=darkHandle and project ID are platform-assigned; automated badge checks may receive 403
PeerPushhttps://peerpush.net/p/{productSlug}https://peerpush.net/p/{productSlug}/badge.pngProduct-specific badge
LaunchIgniterhttps://www.launchigniter.com/product/{productSlug}?ref=badge-{productSlug}https://launchigniter.com/api/winner-badge/{productSlug}?rank={launchRank}&theme=darkUse the winner badge only when the platform provides a rank
Twelve Toolshttps://twelve.toolshttps://twelve.tools/badge0-dark.svgHomepage target observed in a live featured-on footer
Wired Businesshttps://www.wired.businesshttps://wired.business/badge0-dark.svgHomepage target observed in a live featured-on footer

Verified Better Dating Photos examples:

  • Turbo0: https://turbo0.com/item/better-dating-photos
  • Findly.tools: https://findly.tools/better-dating-photos?utm_source=better-dating-photos
  • ShowMeBestAI: https://showmebest.ai
  • NewTool.site: https://newtool.site/item/better-dating-photos
  • Startup Fame: https://startupfa.me/s/betterdatingphotos.com-546?utm_source=betterdatingphotos.com
  • ToolFame: https://toolfame.com/item/better-dating-photos
  • Acid Tools: https://acidtools.com/ai/betterdatingphotos
  • Product Wing: https://productwing.com/product/betterdatingphotos
  • Fazier: https://fazier.com/launches/betterdatingphotos.com
  • Unite List: https://unitelist.com/product/betterdatingphotos
  • OpenHunts Club: https://openhunts.com

Verified AI Selfie Studio examples:

  • Product Hunt: https://www.producthunt.com/products/ai-selfie-studio
  • Uneed: https://www.uneed.best/tool/ai-selfie-studio
  • Peerlist: https://peerlist.io/raptis/project/ai-selfie-studio
  • PeerPush: https://peerpush.net/p/ai-selfie-studio
  • LaunchIgniter: https://www.launchigniter.com/product/ai-selfie-studio?ref=badge-ai-selfie-studio
  • Twelve Tools: https://twelve.tools
  • Wired Business: https://www.wired.business

Submission Materials

Create or update files under .backlink-kit/ in the current project root. Do not place generated submission materials in docs/ unless the user explicitly asks.

Default outputs:

  • .backlink-kit/backlink-submission-materials.md
  • .backlink-kit/backlink-submission-materials.html

The HTML file should be directly openable from disk and display the same Markdown-oriented content with copy buttons. The long description copy control must support:

  • Markdown mode, selected by default;
  • plain text mode without bullet Markdown markers.

After generating or updating the HTML file, explain that it is a local copy desk for directory submissions. Provide the path, and in an interactive desktop or browser environment open it for the user to preview. If opening is not possible, provide a clickable path and the exact command to open it.

Use the bundled script when helpful. Resolve the script relative to this SKILL.md file in the installed skill directory; do not assume a Codex-specific or user-specific absolute path.

python3 /path/to/backlink-kit/scripts/generate_submission_materials.py \
  --product-name "Product Name" \
  --website-url "https://example.com" \
  --primary-category "AI Tool" \
  --secondary-categories "AI, Productivity, Web App" \
  --support-email "[email protected]" \
  --logo-url "https://example.com/icon.png" \
  --screenshot-url "https://example.com/og.png" \
  --tagline "Short benefit-oriented tagline." \
  --one-line "One sentence explaining what the product does." \
  --short-description "A concise directory description." \
  --long-description "A polished product description paragraph." \
  --problem "The problem this product solves." \
  --target-users "The users this product is for." \
  --feature "Feature one: concrete user-facing benefit." \
  --feature "Feature two: concrete user-facing benefit." \
  --pricing "Freemium, paid, or one-time pricing summary." \
  --keywords "keyword one, keyword two, keyword three" \
  --anchor-text "primary backlink anchor" \
  --alternative-anchor-text "secondary backlink anchor" \
  --output-dir .backlink-kit

Adjust the generated copy to the actual product. Do not leave generic placeholders.

Verification

After code changes:

  1. Run the repo's typecheck/lint/build commands where available.
  2. Browser-check at least one public page and one app/workbench page if footer visibility changed.
  3. Verify all badge images load or degrade gracefully.
  4. Verify duplicate visual track links are not keyboard-focusable.
  5. Verify generated HTML copy buttons work; for local file:// pages, use a clipboard fallback if browser permissions block navigator.clipboard.

External Side Effects

Do not submit third-party forms, upload assets, send contact information, or create external side effects unless the user explicitly authorizes the specific site/action.

What ships with it: 2 files

19.2 KB alongside SKILL.md, 1 of them executable

agents/

Gives 0 of the 12 instructions most seo skills give in ~3.3k tokens

Counted across 454 of the 460 authors here whose files we hold, read 2026-08-07

  • Implement structured data using JSON-LDin 29 of 454, across 25 files
  • Write unique meta descriptions under 160 charactersin 25 of 454, across 20 files
  • Verify one H1 exists per pagein 24 of 454, across 15 files
  • Maintain a single H1 per pagein 24 of 454, across 15 files
  • Use JSON-LD format for all schema markupin 23 of 454, across 16 files
  • Use descriptive anchor text for internal linksin 22 of 454, across 18 files
  • Add descriptive alt text to imagesin 19 of 454, across 15 files
  • Read product marketing context before auditingin 19 of 454, across 11 files
  • Write unique title tags under 60 charactersin 19 of 454, across 14 files
  • Add unique title and meta description per pagein 19 of 454, across 17 files
  • Fetch robots.txt and sitemap.xmlin 19 of 454, across 18 files
  • Place the primary keyword in the first 100 wordsin 18 of 454, across 17 files

Said here and by no other author read

  • Read repo instructions first
  • Infer product facts from source before asking
  • Ask before generating materials if facts are missing
  • Include long description and key features list
  • Preserve all existing external badges and links
  • Dedupe directory entries by identity

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,286. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.