
Security News
OpenClaw Advisory Surge Highlights Gaps Between GHSA and CVE Tracking
A recent burst of security disclosures in the OpenClaw project is drawing attention to how vulnerability information flows across advisory and CVE systems.
@power-seo/schema
Advanced tools
Type-safe JSON-LD structured data builder with 25+ schema types and React components
@power-seo/schema is a type-safe JSON-LD structured data library for TypeScript developers and React teams that helps you build Google-compliant schema.org markup — with 20 builder functions, 18 pre-built React components, schema graph support, and field validation.
What it does
<ArticleJsonLd>, <FAQJsonLd>, <ProductJsonLd>, <BreadcrumbJsonLd>, and more@graph document with schemaGraph()validateSchema() checks required fields and returns { valid, errors } without throwingtoJsonLdString() for dangerouslySetInnerHTMLWhat it is not
Recommended for
The problem
datePublished or author silently fail Google Rich Results@graph — without it, Google may only process the first schema it findsWhy developers care
<ArticleJsonLd>, <FAQJsonLd>, <ProductJsonLd>, <BreadcrumbJsonLd>, <LocalBusinessJsonLd>, <EventJsonLd>, <RecipeJsonLd>, <HowToJsonLd>, <VideoJsonLd>, <CourseJsonLd>, <JobPostingJsonLd>, <SoftwareAppJsonLd>, <WebSiteJsonLd>, <OrganizationJsonLd>, <PersonJsonLd>, <ItemListJsonLd>, <ReviewJsonLd>, <NewsArticleJsonLd><JsonLd> component — renders any custom schema object as a JSON-LD script tagschemaGraph() — combine multiple schemas into a single @graph document for optimal Google parsingtoJsonLdString() — serialize any schema object to a safe JSON-LD stringvalidateSchema() — validate required fields without throwing; returns { valid, errors }/react subpath exportvalidateSchema() catches missing fields in CI before pages are published// Builder function approach (works without React)
import { article, toJsonLdString } from '@power-seo/schema';
const jsonLd = article({
headline: 'My Blog Post',
description: 'An informative article about SEO.',
datePublished: '2026-01-15',
dateModified: '2026-01-20',
author: { name: 'Jane Doe', url: 'https://example.com/authors/jane-doe' },
image: { url: 'https://example.com/article-cover.jpg', width: 1200, height: 630 },
});
const script = toJsonLdString(jsonLd);
// → '{"@context":"https://schema.org","@type":"Article","headline":"My Blog Post",...}'
// React component approach
import { ArticleJsonLd } from '@power-seo/schema/react';
<ArticleJsonLd
headline="My Blog Post"
description="An informative article about SEO."
datePublished="2026-01-15"
author={{ name: 'Jane Doe', url: 'https://example.com/authors/jane-doe' }}
image={{ url: 'https://example.com/cover.jpg', width: 1200, height: 630 }}
/>;
// Renders: <script type="application/ld+json">{"@context":"https://schema.org",...}</script>
What you should see
<script type="application/ld+json"> tag in the page <head> with valid schema.org JSONvalidateSchema(schema).valid === true for fully populated schemasnpm i @power-seo/schema
# or
yarn add @power-seo/schema
# or
pnpm add @power-seo/schema
# or
bun add @power-seo/schema
Supported
page.tsx, pass toJsonLdString() to dangerouslySetInnerHTMLgetServerSidePropsEnvironment notes
Before:
- Hand-written JSON-LD: missing "datePublished" → Article not eligible for rich results
- Multiple schemas in separate <script> tags → Google may only parse the first one
- No TypeScript types → runtime errors when API data shape changes
After (@power-seo/schema):
- article({ headline, datePublished, author }) → TypeScript flags missing required fields
- schemaGraph([article, breadcrumb, org]) → single @graph document, all schemas parsed
- validateSchema(schema).errors → ['Article: datePublished is required'] caught in CI
schemaGraph() when rendering multiple schemas on the same pagevalidateSchema() — catch missing required fields before deployingtoJsonLdString() for dangerouslySetInnerHTML — avoids double-encoding issuespublisher on Article schemas — required for Google News eligibilityaggregateRating.reviewCount on Product schemas — minimum threshold for star displayWhere it runs
validateSchema() across all schema outputs in pull request checksData flow
@context, @type, and typed properties<script type="application/ld+json">| Capability | next-seo | schema-dts | json-ld | @power-seo/schema |
|---|---|---|---|---|
| Typed builder functions | ✅ | ❌ | ❌ | ✅ |
| Ready-to-use React components | ✅ | ❌ | ❌ | ✅ |
@graph support | ❌ | ❌ | ❌ | ✅ |
| Built-in field validation | ❌ | ❌ | ❌ | ✅ |
| Works without React | ❌ | ✅ | ✅ | ✅ |
| 20+ schema types | ❌ (partial) | ✅ | ✅ | ✅ |
All 17 packages are independently installable — use only what you need.
| Package | Install | Description |
|---|---|---|
@power-seo/core | npm i @power-seo/core | Framework-agnostic utilities, types, validators, and constants |
@power-seo/react | npm i @power-seo/react | React SEO components — meta, Open Graph, Twitter Card, robots, breadcrumbs |
@power-seo/meta | npm i @power-seo/meta | SSR meta helpers for Next.js App Router, Remix v2, and generic SSR |
@power-seo/schema | npm i @power-seo/schema | Type-safe JSON-LD structured data — 20 builders + 18 React components |
@power-seo/content-analysis | npm i @power-seo/content-analysis | Yoast-style SEO content scoring engine with React components |
@power-seo/readability | npm i @power-seo/readability | Readability scoring — Flesch-Kincaid, Gunning Fog, Coleman-Liau, ARI |
@power-seo/preview | npm i @power-seo/preview | SERP, Open Graph, and Twitter/X Card preview generators |
@power-seo/sitemap | npm i @power-seo/sitemap | XML sitemap generation, streaming, index splitting, and validation |
@power-seo/redirects | npm i @power-seo/redirects | Redirect engine with Next.js, Remix, and Express adapters |
@power-seo/links | npm i @power-seo/links | Link graph analysis — orphan detection, suggestions, equity scoring |
@power-seo/audit | npm i @power-seo/audit | Full SEO audit engine — meta, content, structure, performance rules |
@power-seo/images | npm i @power-seo/images | Image SEO — alt text, lazy loading, format analysis, image sitemaps |
@power-seo/ai | npm i @power-seo/ai | LLM-agnostic AI prompt templates and parsers for SEO tasks |
@power-seo/analytics | npm i @power-seo/analytics | Merge GSC + audit data, trend analysis, ranking insights, dashboard |
@power-seo/search-console | npm i @power-seo/search-console | Google Search Console API — OAuth2, service account, URL inspection |
@power-seo/integrations | npm i @power-seo/integrations | Semrush and Ahrefs API clients with rate limiting and pagination |
@power-seo/tracking | npm i @power-seo/tracking | GA4, Clarity, PostHog, Plausible, Fathom — scripts + consent management |
| Need | Common approach | @power-seo approach |
|---|---|---|
| JSON-LD structured data | next-seo (limited types) | @power-seo/schema — 20 types + graph |
| React components | Manual <script> tags | @power-seo/schema/react — 18 components |
| Meta tags | react-helmet | @power-seo/react + @power-seo/meta |
| Sitemap | next-sitemap | @power-seo/sitemap — streaming + index |
Multi-tenant SaaS
organization into every page's @graph dynamicallyvalidateSchema() ensures no rich result opportunities are silently missedERP / internal portals
Organization schema to public-facing portals for Knowledge Panel eligibilityBreadcrumbList schema on all navigable public pagesRecommended integration pattern
validateSchema() in CI for all schema objectsvalid === false for Article, Product, and FAQ schemasThis package does
<script> tags via 18 React components@graph documentThis package does not
| Function | Schema @type | Rich Result Eligible |
|---|---|---|
article(config) | Article | Yes — Article rich results |
blogPosting(config) | BlogPosting | Yes — Article rich results |
newsArticle(config) | NewsArticle | Yes — Top Stories |
faqPage(config) | FAQPage | Yes — FAQ rich results |
product(config) | Product | Yes — Product rich results |
breadcrumbList(config) | BreadcrumbList | Yes — Breadcrumbs in SERP |
localBusiness(config) | LocalBusiness | Yes — Local Business panel |
organization(config) | Organization | Yes — Knowledge Panel |
person(config) | Person | Yes — Knowledge Panel |
event(config) | Event | Yes — Event rich results |
recipe(config) | Recipe | Yes — Recipe rich results |
howTo(config) | HowTo | Yes — How-to rich results |
videoObject(config) | VideoObject | Yes — Video rich results |
course(config) | Course | Yes — Course rich results |
jobPosting(config) | JobPosting | Yes — Job Posting results |
softwareApplication(config) | SoftwareApplication | Yes — App rich results |
webSite(config) | WebSite | Yes — Sitelinks Searchbox |
itemList(config) | ItemList | Yes — Carousel results |
review(config) | Review | Yes — Review snippet |
service(config) | Service | Partial |
| Component | Prop Type | Description |
|---|---|---|
<ArticleJsonLd> | ArticleConfig | Article / BlogPosting schema |
<NewsArticleJsonLd> | NewsArticleConfig | NewsArticle schema for Top Stories |
<FAQJsonLd> | { questions: FAQItem[] } | FAQPage schema |
<ProductJsonLd> | ProductConfig | Product with offers and ratings |
<BreadcrumbJsonLd> | { items: BreadcrumbItem[] } | BreadcrumbList schema |
<LocalBusinessJsonLd> | LocalBusinessConfig | LocalBusiness schema |
<OrganizationJsonLd> | OrganizationConfig | Organization schema |
<PersonJsonLd> | PersonConfig | Person schema |
<EventJsonLd> | EventConfig | Event schema |
<RecipeJsonLd> | RecipeConfig | Recipe schema |
<HowToJsonLd> | HowToConfig | HowTo schema |
<VideoJsonLd> | VideoObjectConfig | VideoObject schema |
<CourseJsonLd> | CourseConfig | Course schema |
<JobPostingJsonLd> | JobPostingConfig | JobPosting schema |
<SoftwareAppJsonLd> | SoftwareApplicationConfig | SoftwareApplication schema |
<WebSiteJsonLd> | WebSiteConfig | WebSite with SearchAction |
<ItemListJsonLd> | ItemListConfig | ItemList schema |
<ReviewJsonLd> | ReviewConfig | Review schema |
<JsonLd> | { schema: object } | Generic — any schema object |
| Function | Signature | Description |
|---|---|---|
toJsonLdString | (schema: object) => string | Serialize schema to safe JSON-LD string |
schemaGraph | (schemas: object[]) => object | Combine schemas into @graph document |
validateSchema | (schema: object) => { valid: boolean; errors: string[] } | Validate required fields |
pnpm ipnpm buildpnpm testRelease workflow
npm version patch|minor|majornpm publish --access publicCyberCraft Bangladesh is a Bangladesh-based enterprise-grade software engineering company specializing in ERP system development, AI-powered SaaS and business applications, full-stack SEO services, custom website development, and scalable eCommerce platforms. We design and develop intelligent, automation-driven SaaS and enterprise solutions that help startups, SMEs, NGOs, educational institutes, and large organizations streamline operations, enhance digital visibility, and accelerate growth through modern cloud-native technologies.
| Website | ccbd.dev |
| GitHub | github.com/cybercraftbd |
| npm Organization | npmjs.com/org/power-seo |
| info@ccbd.dev |
MIT
seo, json-ld, structured-data, schema-org, rich-results, typescript, react, nextjs, remix, faq-schema, product-schema, article-schema, local-business, breadcrumb
FAQs
Type-safe JSON-LD structured data builder with 23 schema builders and React components
The npm package @power-seo/schema receives a total of 71 weekly downloads. As such, @power-seo/schema popularity was classified as not popular.
We found that @power-seo/schema demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
A recent burst of security disclosures in the OpenClaw project is drawing attention to how vulnerability information flows across advisory and CVE systems.

Research
/Security News
Mixed-script homoglyphs and a lookalike domain mimic imToken’s import flow to capture mnemonics and private keys.

Security News
Latio’s 2026 report recognizes Socket as a Supply Chain Innovator and highlights our work in 0-day malware detection, SCA, and auto-patching.