JSPM

@seomesh/react

0.1.3
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 11
  • Score
    100M100P100Q40550F
  • License MIT

React components for JSON-LD structured data � Product, Article, FAQPage and 40+ schema.org types

Package Exports

  • @seomesh/react
  • @seomesh/react/client

Readme

seo-mesh

@seomesh/react

React Server Components — JSON-LD structured data, OpenGraph, Canonical, HreflangAlternate


Using Next.js? Use @seomesh/next — it includes all these components plus sitemap, robots.txt, and llms.txt generators.

Installation

npm install @seomesh/react

Components

JSON-LD (40+ schema.org types)

import { Product, Offer, AggregateRating } from '@seomesh/react';

<Product name="Hosting Plan" description="NVMe SSD, LiteSpeed.">
  <Offer prop="offers" price={9.9} priceCurrency="USD" availability="https://schema.org/InStock" />
  <AggregateRating prop="aggregateRating" ratingValue={4.8} reviewCount={312} />
</Product>

OpenGraph

import { OpenGraph } from '@seomesh/react';

<OpenGraph
  title="Page Title"
  description="Meta description"
  image="https://mysite.com/og.png"
  imageAlt="OG image"
  type="website"
  twitterCard="summary_large_image"
/>

Canonical

import { Canonical } from '@seomesh/react';

<Canonical href="https://mysite.com/page" />

HreflangAlternate

import { HreflangAlternate } from '@seomesh/react';

<HreflangAlternate
  includeXDefault
  locales={[
    { lang: 'en', href: 'https://mysite.com/en' },
    { lang: 'tr', href: 'https://mysite.com/tr' },
  ]}
/>

AI Bot Policy

import { AiBotPolicy } from '@seomesh/react';

// Block AI training crawlers
<AiBotPolicy deny={['GPTBot', 'CCBot', 'Google-Extended']} noAiImages />

Speakable (AI Summarization)

import { Article, Speakable } from '@seomesh/react';

<Article headline="Title" datePublished="2026-05-15">
  <Speakable prop="speakable" cssSelector={['.intro', 'h1']} />
</Article>

@graph Merge

import { SchemaGraph, WebSite, Organization } from '@seomesh/react';

<SchemaGraph>
  <WebSite name="My Site" url="https://mysite.com" />
  <Organization name="My Org" url="https://mysite.com" />
</SchemaGraph>

RSC Compatible

No React Context used. The JSX tree is traversed statically — works seamlessly in 'use server' components.

License

MIT © Mehmet Can Öztürk