Component

Testimonial Schema

Emits individual schema.org Review nodes from studio testimonials. Headless — no AggregateRating by design.

Headless

TestimonialSchema — Review JSON-LD (no AggregateRating)

Emits individual Review nodes from studio testimonials. Intentionally skips AggregateRating (spam risk for self-published stars).

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Alex R.",
        "jobTitle": "Founder",
        "worksFor": {
          "@type": "Organization",
          "name": "Dev tools startup"
        }
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5"
      },
      "reviewBody": "Koustav shipped what would have taken me two months in a week. I talked to the person building i…",
      "itemReviewed": {
        "@type": "ProfessionalService",
        "name": "Makershot"
      }
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Priya M.",
        "jobTitle": "Head of Product",
        "worksFor": {
          "@type": "Organization",
          "name": "Legal tech"
        }
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5"
      },
      "reviewBody": "The AI feature actually fits our workflow — not a chatbot bolted on the side. Our ops team uses …",
      "itemReviewed": {
        "@type": "ProfessionalService",
        "name": "Makershot"
      }
    }
  ]
}

Full graph is injected on this page — sample above shows the shape.

Installation

import { TestimonialSchema } from "atroui"

Usage

Place on pages where reviews should be eligible for rich results. Skips AggregateRating to avoid self-published star spam signals.

API Reference

PropTypeDefaultDescription
pageUrlstringsite URLCanonical URL for itemReviewed.