UI3232
47 Accordion48 Alerts49 Avatar50 Badge51 Breadcrumb52 Button53 Button Group54 Calendar55 Card56 Checkbox57 Collapsible58 Combobox59 Data Table60 Date Picker61 Dialog62 Dropdown Menu63 Form64 Input65 Input Mask66 Input OTP67 Pagination68 Popover69 Radio Group70 Select71 Sheet72 Slider73 Sonner74 Switch75 Table76 Tabs77 Textarea78 Tooltip
Blocks1010
202 Marketing hero with product shot203 Marketing feature bento204 Marketing pricing205 Marketing testimonials wall206 Marketing CTA and footer212 Dashboard shell213 Sign in214 Settings page215 Inbox216 AI chat app
Charts2929
01 Animated radial chart99 Live line101 Route trace142 Candlestick chart143 Forecast fan144 State timeline145 Spark table146 Distribution plot147 Violin plot148 Beeswarm149 Slope chart150 Dumbbell chart151 Waterfall chart152 Treemap153 Streamgraph154 Scatter brush155 Correlation matrix156 Sankey flow157 Drawdown chart158 Depth chart159 Calibration plot160 Stacked area chart161 Grouped bar chart162 Donut chart163 Funnel chart164 Cohort retention165 Calendar heatmap166 Bullet chart240 Order book
Interactive66
02 Message dock03 Voice powered orb07 Draggable rope93 Timer113 Elastic frame117 Scene states
AI2424
13 AI voice input103 Agent trace104 Handoff beam105 Lattice orb220 Streaming message221 Reasoning disclosure222 Stream status223 Message branch224 Response feedback225 Prompt composer226 Model selector227 Attachment chips228 Suggested prompts229 Context meter230 Tool call card231 Approval gate232 Diff review233 Artifact panel234 Inline AI edit235 Citation chips236 Retrieval inspector237 Memory viewer238 Response compare239 Cost meter
Galleries66
04 Ruler carousel10 Portfolio gallery32 Hover image gallery106 Torn edge reveal107 Mosaic settle115 Project index
Heroes22
05 Video scroll hero116 Aperture dive
Shaders66
80 Aurora veil88 Kinetic dots90 Silt91 Intaglio92 Phosphor114 Sumi
Tables1420
06 Financial table43 Contacts table44 Leads table45 Resizable table46 Server management89 Periodic table100 Flap ledger120 Sortable table121 Pricing table122 Invoice table123 Leaderboard124 Changelog table125 API reference table126 File tree table127 Timetable128 Shortcuts table129 Spec sheet130 Transactions table131 Spreadsheet grid132 Permissions matrix
Cards2626
11 Video upload card16 Animated card options17 Animated card status list18 Audio upload card19 Bonuses incentives card20 Coach scheduling21 Dashboard card modal22 Event countdown card23 Hover detail card24 News cards25 Onboarding stages26 Prediction market card27 Product reveal card28 Profile hover card29 Project cards102 Solar sky panel182 Plan usage card183 Payment method card184 Integration card185 Metric card186 Shipment card187 Now playing card188 Deployment card189 Team invite card190 Streak card191 Link preview card
Badges11
14 Animated status badge
Controls44
31 Gradient selector95 Adaptive precision slider96 Click wheel97 Velocity ink
Navigation22
94 Radial command ring108 Minimap scrollbar
Utilities33
98 Spring tuner110 Stroke-morph icon119 Glow rules
HUD88
09 HUD frame15 Animated download34 Glitchy 40435 Overlay 236 HUD button37 HUD graph38 HUD status40 Warning graphic
Feedback11
109 Morph loader
Text1212
33 Reveal text111 Scatter rewind112 Plane type133 Glyph morph134 Weight wave135 Decode text136 Magnetic letters137 Slice shift138 Stroke draw type139 Ink bleed text140 Liquid text141 Chromatic text
Components•Marketing testimonials wall
Components•Marketing testimonials wall

Marketing testimonials wall

A wall of customer quotes with the numbers that back them up. On wide screens the columns drift upward at slightly different speeds and stop the moment a pointer or focus lands on them; quotes with a metric get a headline figure. On phones it becomes a still list with a Show all control.

Dependencies

MotionLucideclsx

Copy below cli

npx shadcn add @bjork-ui/marketing-testimonials-wall

How to use

import {  MarketingTestimonialsWall,  type Testimonial,} from "@/components/bjork-ui/blocks/marketing-testimonials-wall";const testimonials: Testimonial[] = [  {    id: "maya",    quote: "The alert fires on the third retry and the trace shows which tool returned garbage.",    name: "Maya Okafor",    role: "Head of Support Engineering",    company: "Northbay Outfitters",    metric: { value: "41%", label: "fewer failed runs" },  },  // ...];<MarketingTestimonialsWall  eyebrow="Customers"  title="Teams ship agents with fewer surprises."  stats={[{ value: "1,800", label: "teams tracing in production" }]}  testimonials={testimonials}  motion="drift" // or "static" for a still masonry wall/>

Full width

Open the block on its own page

Keep in mind

Drifting content carries a visible pause button, pauses on hover and keyboard focus, and turns into the static wall under reduced motion. The duplicate copy that closes the loop is hidden from screen readers and made inert, so every quote is read once.
PreviousMarketing pricingNextMarketing CTA and footer

Customers

Teams ship agents with fewer surprises.

From two-person startups to support teams answering a million tickets a month.

fewer failed runs in the first month
41%
faster to find the step that broke
3.2x
teams tracing in production
1,800
  • 41%fewer failed runs

    “We used to find out a refund agent was looping from the bill. Now the alert fires on the third retry and the trace shows us exactly which tool returned garbage.”

    MOMaya OkaforHead of Support Engineering, Northbay Outfitters
  • “Replay is the feature. Rewind to the step before it broke, change the prompt, run it again. That loop used to take an afternoon.”

    TFTomás FerreiraStaff Engineer, Ledgerline
  • “Two lines in, and our first trace showed a search call we had forgotten we were making on every turn.”

    PRPriya RamanFounding Engineer, Quillstack
  • $18ksaved in the first quarter

    “Cost per run changed how we review prompts. A pull request that doubles token spend now gets caught before it merges.”

    JLJonah LindqvistEngineering Manager, Fernway Health
  • 41%fewer failed runs

    “We used to find out a refund agent was looping from the bill. Now the alert fires on the third retry and the trace shows us exactly which tool returned garbage.”

    MOMaya OkaforHead of Support Engineering, Northbay Outfitters
  • $18ksaved in the first quarter

    “Cost per run changed how we review prompts. A pull request that doubles token spend now gets caught before it merges.”

    JLJonah LindqvistEngineering Manager, Fernway Health
  • “I keep it open on a second screen during launches. J and K through the steps, R to replay. It feels like a debugger, not a dashboard.”

    KMKenji MoriyamaAI Engineer, Halcyon Labs
  • 41%fewer failed runs

    “We used to find out a refund agent was looping from the bill. Now the alert fires on the third retry and the trace shows us exactly which tool returned garbage.”

    MOMaya OkaforHead of Support Engineering, Northbay Outfitters
  • $18ksaved in the first quarter

    “Cost per run changed how we review prompts. A pull request that doubles token spend now gets caught before it merges.”

    JLJonah LindqvistEngineering Manager, Fernway Health
  • “I keep it open on a second screen during launches. J and K through the steps, R to replay. It feels like a debugger, not a dashboard.”

    KMKenji MoriyamaAI Engineer, Halcyon Labs
  • “Replay is the feature. Rewind to the step before it broke, change the prompt, run it again. That loop used to take an afternoon.”

    TFTomás FerreiraStaff Engineer, Ledgerline
  • “Masking happens in the SDK, which was the only way legal would let us send traces anywhere at all.”

    ANAdaeze NwosuSecurity Lead, Copperleaf Bank
  • “We moved three agents and four teams onto one project in a week. Everyone looks at the same trace when something goes wrong.”

    SMSofia MarchettiDirector of Engineering, Brightmoor
  • “Replay is the feature. Rewind to the step before it broke, change the prompt, run it again. That loop used to take an afternoon.”

    TFTomás FerreiraStaff Engineer, Ledgerline
  • “Masking happens in the SDK, which was the only way legal would let us send traces anywhere at all.”

    ANAdaeze NwosuSecurity Lead, Copperleaf Bank
  • “We moved three agents and four teams onto one project in a week. Everyone looks at the same trace when something goes wrong.”

    SMSofia MarchettiDirector of Engineering, Brightmoor
  • “Two lines in, and our first trace showed a search call we had forgotten we were making on every turn.”

    PRPriya RamanFounding Engineer, Quillstack
  • “The waterfall made the slow step obvious. It was never the model. It was the CRM lookup, every single time.”

    LBLena BrandtPlatform Engineer, Tidewater Freight
  • “Alerts that read like sentences sounds like marketing until you get paged at 2am and the page tells you what actually happened.”

    DADaniel AchterbergSRE, Parcelpoint
  • “Two lines in, and our first trace showed a search call we had forgotten we were making on every turn.”

    PRPriya RamanFounding Engineer, Quillstack
  • “The waterfall made the slow step obvious. It was never the model. It was the CRM lookup, every single time.”

    LBLena BrandtPlatform Engineer, Tidewater Freight
  • “Alerts that read like sentences sounds like marketing until you get paged at 2am and the page tells you what actually happened.”

    DADaniel AchterbergSRE, Parcelpoint
  • 41%fewer failed runs

    “We used to find out a refund agent was looping from the bill. Now the alert fires on the third retry and the trace shows us exactly which tool returned garbage.”

    MOMaya OkaforHead of Support Engineering, Northbay Outfitters
  • “Two lines in, and our first trace showed a search call we had forgotten we were making on every turn.”

    PRPriya RamanFounding Engineer, Quillstack
  • “Masking happens in the SDK, which was the only way legal would let us send traces anywhere at all.”

    ANAdaeze NwosuSecurity Lead, Copperleaf Bank
  • “I keep it open on a second screen during launches. J and K through the steps, R to replay. It feels like a debugger, not a dashboard.”

    KMKenji MoriyamaAI Engineer, Halcyon Labs
  • “Alerts that read like sentences sounds like marketing until you get paged at 2am and the page tells you what actually happened.”

    DADaniel AchterbergSRE, Parcelpoint
  • 41%fewer failed runs

    “We used to find out a refund agent was looping from the bill. Now the alert fires on the third retry and the trace shows us exactly which tool returned garbage.”

    MOMaya OkaforHead of Support Engineering, Northbay Outfitters
  • “Two lines in, and our first trace showed a search call we had forgotten we were making on every turn.”

    PRPriya RamanFounding Engineer, Quillstack
  • “Masking happens in the SDK, which was the only way legal would let us send traces anywhere at all.”

    ANAdaeze NwosuSecurity Lead, Copperleaf Bank
  • “I keep it open on a second screen during launches. J and K through the steps, R to replay. It feels like a debugger, not a dashboard.”

    KMKenji MoriyamaAI Engineer, Halcyon Labs
  • “Alerts that read like sentences sounds like marketing until you get paged at 2am and the page tells you what actually happened.”

    DADaniel AchterbergSRE, Parcelpoint
  • “Replay is the feature. Rewind to the step before it broke, change the prompt, run it again. That loop used to take an afternoon.”

    TFTomás FerreiraStaff Engineer, Ledgerline
  • $18ksaved in the first quarter

    “Cost per run changed how we review prompts. A pull request that doubles token spend now gets caught before it merges.”

    JLJonah LindqvistEngineering Manager, Fernway Health
  • “The waterfall made the slow step obvious. It was never the model. It was the CRM lookup, every single time.”

    LBLena BrandtPlatform Engineer, Tidewater Freight
  • “We moved three agents and four teams onto one project in a week. Everyone looks at the same trace when something goes wrong.”

    SMSofia MarchettiDirector of Engineering, Brightmoor
  • “Replay is the feature. Rewind to the step before it broke, change the prompt, run it again. That loop used to take an afternoon.”

    TFTomás FerreiraStaff Engineer, Ledgerline
  • $18ksaved in the first quarter

    “Cost per run changed how we review prompts. A pull request that doubles token spend now gets caught before it merges.”

    JLJonah LindqvistEngineering Manager, Fernway Health
  • “The waterfall made the slow step obvious. It was never the model. It was the CRM lookup, every single time.”

    LBLena BrandtPlatform Engineer, Tidewater Freight
  • “We moved three agents and four teams onto one project in a week. Everyone looks at the same trace when something goes wrong.”

    SMSofia MarchettiDirector of Engineering, Brightmoor