Testimonials

Customer quotes, one featured on the emphasised surface and the rest on tiles beside it, each signed with a name and role.

Customers

Teams that stopped chasing payments

“We closed the books two days faster the first month. Nobody chases invoices any more, and our customers say paying us is the easiest part of their week.”
IOInes OkaforHead of finance, Kettle & Fern
“The reminders alone paid for it. Late payments went from a third of invoices to almost none.”
TFTomás FerreiraFounder, Ridgeway
“Our auditor asked for a year of records and got them in one file the same afternoon.”
PRPriya RamanController, Halcyon
“Billing customers in their own currency stopped a whole class of support tickets.”
JWJonah WeissOperations lead, Stackwise
“Setting it up took an afternoon. We moved two hundred customers over without a single mistake.”
ALAmara LindqvistCOO, Quill & Co

Installation

  1. 1. Install a design system if the project does not have one yet: Cueit, Skita or Folio.

  2. 2. Add the block. It installs to components/satori-ui/blocks/ with the shadcn/ui primitives it uses.

    npx shadcn@latest add @satoriui/testimonials-01
  3. 3. Render it inside the system's scope. With the scope class on <html> there is nothing more to do. To try another system, change the class.

    app/page.tsx
    import { Testimonials01 } from "@/components/satori-ui/blocks/testimonials-01";
    export default function Page() {
    return <Testimonials01 />;
    }

How it adapts

It is built from one shadcn/ui primitive, Avatar, which every design system re-skins.

For what shadcn has no name for, it uses 6 of the shared contract utilities. Every system defines them identically and sets the variables they read.

ds-title
The title
ds-label
Data labels
ds-text
Body copy
ds-small
Secondary copy
ds-tile
Surfaces it draws itself
ds-tile-emphasis
The one emphasised surface