بنقرة واحدة
customer-story
Scaffold a customer story page under src/pages/use-cases/ from the CustomerStory module.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Scaffold a customer story page under src/pages/use-cases/ from the CustomerStory module.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Verify UI changes in microlink/www by driving the Gatsby dev server with agent-browser.
Create or improve competitor alternative pages under src/pages/alternative/.
Create or improve use-case landing pages under src/pages/use-cases/ from the UseCaseStory module.
Generate concise, user-facing changelog entries for Microlink by inspecting git commits across relevant repositories.
Make designs responsive across screen sizes, devices, and platforms.
Add animations, micro-interactions, and motion effects to a feature.
| name | customer-story |
| description | Scaffold a customer story page under src/pages/use-cases/ from the CustomerStory module. |
Build a customer page at src/pages/use-cases/<slug>.js (route /use-cases/<slug>).
Unified route. Customer stories and use cases now live together under
src/pages/use-cases/. Customer pages still use the CustomerStory module (testimonial, flow diagram, thanks section) — this skill — while use-case recipes use the UseCaseStory module (see theuse-case-landingskill). The two render side by side on the shared/use-caseslisting: a "Customer stories" grid followed by a "Use cases" grid. The old/customersand/customers/<slug>URLs 301-redirect to/use-casesviavercel.json.
src/components/patterns/CustomerStory/index.js — barrel exports.src/pages/use-cases/luckynote.js — reference page. Mirror its structure..cursor/skills/customer-story/references/template.md — template with {{TOKEN}} placeholders..cursor/skills/customer-story/references/cta-routing.md — use-case → CTA href mapping.All primitives live in src/components/patterns/CustomerStory/. Import by name. Never re-declare locally.
| Export | Notes |
|---|---|
ACCENT | Shared accent object (text: 'link'). Imported, never defined locally. |
CUSTOMERS | Registry of all customer metadata (slug, name, blurb, icon, quote, author, role, avatar, initials). |
Section, SectionInner, Caption, Figure, FigureImage | Layout primitives. |
DashedGridOverlay | Decorative background. |
Eyebrow | Accent-aware label. Pass accent={ACCENT}. |
Testimonial | Props: accent, quote, author, role, company, initials, optional avatar, maxWidth. |
MoreCustomers | Filters out currentSlug. Self-omits when < 2 siblings. |
CtaSection | CTA panel. Uses colors.link for background tint internally. Props: accent, headlinePrefix, headlineAccent, body, href, label, optional mt. |
WhyCard | Props: accent, number, kicker, title, body. |
FlowDiagram | Props: accent, nodes array ({ label, sub, active? }). |
<Text as='p'> — uses Text defaults (fontSize: [1,1,2,2], lineHeight: 3).<Text as='h2'> — same base component.BodyText, no SubheadBase. Just Text with the appropriate as prop.The hero shows logo + company name (not a "Customer story" tag):
<Flex css={theme({ alignItems: 'center', gap: 2, pb: [3, 3, 4, 4] })}>
<img src='/images/clients/{{ICON}}' alt='' width='40' height='40'
css={theme({ display: 'block', borderRadius: 2, width: '40px', height: '40px' })}
style={{ objectFit: 'cover' }} decoding='async' />
<Text css={theme({ color: 'black', fontSize: 2, fontWeight: 'bold', lineHeight: 1 })}>
{{CUSTOMER_NAME}}
</Text>
</Flex>
Hero (logo + name, h1, intro paragraph, ArrowLink CTA)
AboutCustomer (Eyebrow, h2, paragraphs, external link, Testimonial)
HowTheyUseIt (Eyebrow, h2, paragraphs, FlowDiagram or image)
WhyMicrolink (Eyebrow, h2, lead paragraph, 3× WhyCard)
CtaSection (shared)
MoreCustomers (shared)
ThanksSection (logo + acknowledgement)
When adding a customer, append to src/components/patterns/CustomerStory/customers.js:
{
slug: '<slug>',
name: '<name>',
blurb: '<~10 words, period>',
icon: '/images/clients/<icon>',
category: '<product> API',
quote: '<short quote for index page>',
author: '<name>',
role: '<role>',
avatar: '/images/clients/<avatar>.jpeg',
initials: '<XX>'
}
The unified /use-cases listing (src/pages/use-cases/index.js) is data-driven over
CUSTOMERS — the rotating hero, the "Trusted by innovative companies" logo bar, and the
"Customer stories" grid all map over it. Appending here is enough; you do not edit
index.js per customer. The cards link to /use-cases/<slug>.
pink/secondary/pinky/pinkest accent — reserved for feature pages.<Text as='a' target='_blank' rel='noopener'>, NOT the repo Link component (which adds noreferrer, killing SEO backlink value).See how to integrate <product>. Must differ from bottom CTA label.<h1> must include scrollMarginTop: 4.<name>: <use case> (no brand suffix — Meta appends — Microlink).cdnUrl('banner/screenshot.jpeg').npx standard src/pages/use-cases/<slug>.js.Ask one question at a time:
src/pages/use-cases/ (the folder now holds customer stories and use-case recipes).references/cta-routing.md. Propose and confirm.customers.js.npx standard src/pages/use-cases/<slug>.js — fix until clean.{{ — no placeholders remaining.customers.js.Read the file, identify what needs changing, run only relevant steps, re-lint.