用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/microlinkhq/www --skill alternative-landing命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | alternative-landing |
| description | Create or improve competitor alternative pages under src/pages/alternative/. |
Build or refresh landing pages at src/pages/alternative/[slug].js.
The goal is not generic comparison copy. The goal is a repo-native page that:
src/pages/benchmarks/screenshot-api.js (screenshot pages only)Before any research or editing, ask the user which Microlink product the competitor competes with:
cloudflare.js shape — curl-vs-curl hero, no SpeedSection), CTA URLs target /markdown or /metadata, and the TryIt uses MultiCodeEditorInteractive with a markdown or meta mqlCode.If you can identify the category confidently from the competitor's homepage, confirm with the user before proceeding instead of asking blindly. Phrasing example: "I see [Competitor] leads with [rich-media embeds / headless screenshots / LLM-ready markdown]. I'll use the [embed / screenshot / AI data] template — confirm?"
If a competitor straddles more than one category, pick the dominant product. Lead with embeds → embed template. Lead with screenshots → screenshot template. Lead with LLM-ready markdown or structured data → AI data / scraping structure. Never mix templates.
The category choice changes:
template-structure.md for screenshot and AI data; embed-template.md for embed)screenshotone.js, iframely.js, or cloudflare.js for the no-benchmark shape)SpeedSection — only when the competitor has real benchmark data in src/pages/benchmarks/screenshot-api.js. Embed and AI data / scraping competitors never do, and an unbenchmarked screenshot competitor does not either (cloudflare.js is the reference for that case). Without benchmark data there is no SpeedSection and no RaceContainer.RaceContainer when benchmarked, a side-by-side curl comparison when not, <InteractiveExample flat hideFooter /> for embed)MultiCodeEditorInteractive for screenshot and AI data, <PreviewVariantsShowcase /> for embed)/screenshot, /embed, or /markdown / /metadata for AI data)Before planning or editing, read these in order:
.claude/product-marketing-context.md.cursor/skills/alternative-landing/references/microlink-features.mdAGENTS.mdThen, depending on the category:
src/pages/alternative/screenshotone.js — primary structural referencesrc/pages/alternative/screenshotapi.js — secondary reference for a different anglesrc/pages/alternative/*.js files — required for anti-cannibalizationsrc/pages/benchmarks/screenshot-api.js — only source of truth for benchmark numbers.cursor/skills/alternative-landing/references/template-structure.mdsrc/pages/alternative/iframely.js — canonical structural reference (the only embed alternative page so far)src/pages/embed.js — source of the InteractiveExample and PreviewVariantsShowcase exports you'll importsrc/pages/alternative/*.js files — required for anti-cannibalization (even though they're screenshot pages, FAQ wording and SEO titles can still clash)src/pages/features/proxy.js — source of truth for proxy / antibot / CAPTCHA claims.cursor/skills/alternative-landing/references/embed-template.mdThese are non-negotiable:
references/microlink-features.md.prettier, prettier-standard, repo-wide format commands, or any command that may rewrite unrelated files.Use sources in this order:
src/pages/benchmarks/screenshot-api.js.cursor/skills/alternative-landing/references/microlink-features.mdUse third-party sources only for:
Do not use third-party sources as proof for hard claims if the competitor site does not confirm them.
Before editing:
Screenshot-only step: map the competitor to a benchmark key in BENCHMARK_DATA.results.
If the competitor is screenshot-category but not benchmarked in src/pages/benchmarks/screenshot-api.js, stop and ask how to proceed. Do not fabricate a speed section.
Recommended options:
If the competitor is embed-category, skip the benchmark mapping — there is no embed benchmark. Follow embed-template.md which deliberately omits SpeedSection.
If the competitor is AI data / scraping, skip the benchmark mapping too — there is no markdown or structured-data benchmark. Follow the cloudflare.js no-benchmark shape, which omits SpeedSection and RaceContainer.
This phase is mandatory.
Use WebFetch to fetch and inspect, at minimum:
Use WebSearch to discover missing official pages and to understand positioning:
"[Competitor] pricing [year]""[Competitor] [category] api features" — swap [category] for screenshot or embed"[Competitor] docs""[Competitor] alternatives""[Competitor] review limitations"For embed-category competitors, also confirm:
From research, build a working ledger of:
If the site is too JS-heavy to verify a claim via fetchable content, treat that claim as unverified and ask the user before using it.
Every alternative page needs a distinct search and messaging angle.
Read every existing file in src/pages/alternative/*.js and compare:
<Meta title><Meta description>Current angle map:
Screenshot category:
screenshotone.js: speed-first angle ("The fastest ScreenshotOne alternative")screenshotapi.js: breadth / "does more" angle ("broader browser workflows")urlbox.js: cost per render angle ("better cost per render")screenshotmachine.js: upgrade path angle ("richer browser workflows")apiflash.js: production workloads angle ("for production workloads")url2png.js: modernization angle ("a more modern screenshot API")screenshotlayer.js: throughput / overage anglethumio.js: final-screenshot vs streamed-thumbnail anglecloudflare.js: batteries-included angle ("managed screenshot API vs DIY browser infrastructure") — no benchmark data, so no SpeedSection/RaceContainer; hero uses a side-by-side curl comparison insteadAI data / scraping category:
firecrawl.js: flat-pricing angle ("without the credit math" — 5× stealth multiplier, one-time free credits, no rollover)context-dev.js: one-request bundle angle ("answers in one request" — credit menu vs metadata+logo+markdown+screenshot in a single flat request)Embed category:
iframely.js: developer-first angle ("The developer-first Iframely alternative") — emphasizes per-request pricing vs hit-based pricing, no rate-limit ceiling, and the Pro proxy bundlePick a primary angle and a secondary angle for the new page. Examples:
Avoid collisions such as:
If the best angle clearly collides with an existing page, change the angle or ask the user which angle to prioritize.
BENCHMARK_DATA (screenshot category only)Skip this whole subsection on embed pages. Embed alternatives have no benchmark and no SpeedSection.
For screenshot pages, copy only:
microlinkKeep the same testUrls array from src/pages/benchmarks/screenshot-api.js.
Inline the values exactly. Do not reference helper constants from the benchmark page.
SERVICE_COLORS (screenshot category only)Embed pages do not render a benchmark race and do not need a SERVICE_COLORS map. Skip.
For screenshot pages, use:
microlink: colors.red6Currently used:
screenshotone: colors.pink6screenshotapi: colors.grape7urlbox: colors.teal6screenshotmachine: colors.blue6apiflash: colors.orange6Embed pages do not have speed claims. Skip this subsection.
For screenshot pages, compute conservatively:
((competitorAvg - microlinkAvg) / microlinkAvg) * 100competitorUrl / microlinkUrlFor marketing copy:
"up to 2× faster" over "up to 2.4× faster" unless the decimal precision is important and still conservativeIf the benchmark result is directionally mixed or too small to support a strong claim, soften the copy.
COMPARISON_DATABuild the comparison table from:
references/microlink-features.mdAllowed values:
truefalse'partial''on demand'Ordering:
Highlighting:
highlight: true only when Microlink clearly has the advantageNotes:
note only when nuance materially helps interpretationEmbed pages: always include three Pro-bundle rows with highlight: true — Rotating residential proxy (Pro), Antibot detection & bypass (Pro), CAPTCHA handling (Pro). The provider lists go in the note field. See references/embed-template.md → "Comparison table — Pro proxy rows" for the canonical wording and provider names. Flip the competitor column to true only if their docs explicitly document the same capabilities — verify on their site before doing so.
Use the competitor pricing page as the source of truth.
For Microlink, choose the most relevant tier from references/microlink-features.md.
Prefer apples-to-apples based on:
Include pricing source URLs in code comments near the pricing copy or pricing constants.
If there is no honest apples-to-apples tier, say so in the copy or ask the user before forcing a comparison.
Follow the right reference for the category:
references/template-structure.md. Primary live example: src/pages/alternative/screenshotone.js. Secondary: src/pages/alternative/screenshotapi.js.references/embed-template.md. Canonical live example: src/pages/alternative/iframely.js.Default rule:
Hero (with <RaceContainer> from the benchmark)SpeedSectionWhySwitchSectionPricingSectionCTASectionComparisonSectionHonestySectionTryItSection (with MultiCodeEditorInteractive)FAQSectionHero (with <InteractiveExample flat hideFooter /> imported from pages/embed)WhySwitchSectionPricingSectionCTASectionComparisonSectionHonestySectionTryItSection (with <PreviewVariantsShowcase /> imported from pages/embed — link first, preview after)FAQSectionNo SpeedSection. No RaceContainer. No MultiCodeEditorInteractive.
Do not run automatic formatting after editing. If verification is needed, prefer targeted linting or manual fixes inside the landing file only.
theme({...}) for styled-system-supported properties per AGENTS.md.HonestySection must contain real competitor strengths (3–6 items; Iframely currently ships 3).Head export must use a unique title, unique description, correct canonical URL, and FAQ schema.FAQ_ITEMS array pattern (with { question, answer, text }) for every new page — this is now the standard, shared by urlbox.js, screenshotmachine.js, apiflash.js, and iframely.js. The text field holds the plain-text version for schema; answer holds the JSX for rendering.<code css={theme({...})}> — this repo's css prop transform fails on <code> and throws "Element type is invalid". Use <b> or a styled component instead.<Link href='/features/proxy'> reference. See embed-template.md for canonical wording./features/proxy and mentioning is-antibot (the open-source detection library).src/components/patterns/Footer/Footer.js Comparisons list in alphabetical order ({ label: 'vs [Competitor]', href: '/alternative/[slug]' }).The skill should think about whether a competitor-specific section would improve the page.
Examples:
Only add a custom section if all are true:
If unsure, propose the new section to the user instead of silently changing the architecture.
When updating an existing page:
SpeedSection alone: embed pages import InteractiveExample from components/pages/embed; screenshot and AI data pages use MultiCodeEditorInteractive, and only benchmarked screenshot pages add SpeedSection/RaceContainer.src/pages/benchmarks/screenshot-api.js.src/pages/features/proxy.js (for current Pro proxy claims) and src/pages/embed.js (for the imported components).screenshotone.js for structural drift.iframely.js for structural drift.After drafting or improving a page, always report:
Suggestions should focus on:
If the user asks for an SEO pass, or if title/meta/FAQ/cannibalization choices are unclear, read and follow:
~/.claude/skills/seo-audit/SKILL.mdUse it mainly to validate:
TODO claims into production copy. If a claim is important but unverified, stop and ask.SpeedSection for embed competitors. There is no embed benchmark in this repo.HERO_DEMOS, PREVIEW_VARIANTS, or InteractiveExample internals on embed pages — import from pages/embed.prettier, prettier-standard, or any repo-level formatter while using this skill, even on a single file, because this repository's formatter can touch unrelated files.基于 SOC 职业分类