← All blocks

Customer stories with before-and-after metrics

testimonial · story-rows-before-after · testimonial-case-metrics

npx shadcn@latest add @plus-ui/testimonial-case-metrics

Default content

{
  "eyebrow": "Customer stories",
  "title": "Shipping got faster the week they switched",
  "description": "Three engineering teams, three different stacks. The same result: smaller releases, shipped more often, rolled back in seconds when needed.",
  "featured": {
    "quote": "Reviewers click a preview link instead of pulling branches. Our designers now sign off on real builds, not screenshots.",
    "author": {
      "name": "Aiko Yamamoto",
      "role": "Engineering Manager",
      "avatar": {
        "src": "https://images.unsplash.com/photo-1531746020798-e6953c6e8e04?auto=format&fit=crop&crop=faces&w=200&h=200&q=80",
        "alt": "Portrait of Aiko Yamamoto"
      }
    },
    "company": "ostrelo",
    "story": {
      "summary": "Ostrelo's storefront team moved 40 services from a self-hosted CI to Rivetlane in three weeks, and gave every pull request its own preview URL.",
      "metrics": [
        {
          "label": "Median build time",
          "before": "14 min",
          "after": "52 s"
        },
        {
          "label": "Deploys per day",
          "before": "3",
          "after": "41"
        },
        {
          "label": "Time to roll back",
          "before": "25 min",
          "after": "9 s"
        }
      ],
      "link": {
        "label": "Read the Ostrelo story",
        "href": "#"
      }
    }
  },
  "quotes": [
    {
      "quote": "We stopped scheduling release nights. A bad deploy is one click away from the last good one, so we just ship.",
      "author": {
        "name": "Mateo Rossi",
        "role": "Head of Platform",
        "avatar": {
          "src": "https://images.unsplash.com/photo-1560250097-0b93528c311a?auto=format&fit=crop&crop=faces&w=200&h=200&q=80",
          "alt": "Portrait of Mateo Rossi"
        }
      },
      "company": "zephlo",
      "story": {
        "summary": "Zephlo's platform team replaced weekly release trains with continuous deploys after instant rollbacks made a bad release a non-event.",
        "metrics": [
          {
            "label": "Releases per week",
            "before": "1",
            "after": "60+"
          },
          {
            "label": "Change failure rate",
            "before": "18%",
            "after": "4%"
          }
        ],
        "link": {
          "label": "Read the Zephlo story",
          "href": "#"
        }
      }
    },
    {
      "quote": "Edge caching was a config line, not a project. Our checkout got faster in every region the same afternoon.",
      "author": {
        "name": "Nadia Haddad",
        "role": "Staff Engineer",
        "avatar": {
          "src": "https://images.unsplash.com/photo-1580489944761-15a19d654956?auto=format&fit=crop&crop=faces&w=200&h=200&q=80",
          "alt": "Portrait of Nadia Haddad"
        }
      },
      "company": "talvik",
      "story": {
        "summary": "Talvik serves shoppers in 14 countries. Moving its storefront to Rivetlane's edge network cut page loads worldwide without a rewrite.",
        "metrics": [
          {
            "label": "p75 page load",
            "before": "2.8 s",
            "after": "0.9 s"
          },
          {
            "label": "Infra cost per month",
            "before": "$18.4k",
            "after": "$7.1k"
          },
          {
            "label": "Regions served",
            "before": "2",
            "after": "14"
          }
        ],
        "link": {
          "label": "Read the Talvik story",
          "href": "#"
        }
      }
    }
  ]
}