with one click
customer-story
// Scaffold a customer use-case page under src/pages/customers/ from CustomerStory module.
// Scaffold a customer use-case page under src/pages/customers/ from CustomerStory 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.
Fix layout, spacing, visual rhythm, and hierarchy.
Audit interface accessibility, performance, theming, and responsiveness.
Amplify safe or boring designs to increase visual impact.
| name | customer-story |
| description | Scaffold a customer use-case page under src/pages/customers/ from CustomerStory module. |
Build a customer page at src/pages/customers/<slug>.js.
src/components/patterns/CustomerStory/index.js — barrel exports.src/pages/customers/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>'
}
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/customers/<slug>.js.Ask one question at a time:
src/pages/customers/.references/cta-routing.md. Propose and confirm.customers.js.npx standard src/pages/customers/<slug>.js — fix until clean.{{ — no placeholders remaining.customers.js.Read the file, identify what needs changing, run only relevant steps, re-lint.