|
| 1 | +// Single source of truth for the Organization/SoftwareApplication JSON-LD. |
| 2 | +// Per the JSON-LD audit, the same `@id` was showing conflicting `name`, |
| 3 | +// `logo`, and `sameAs` values across temporal.io and docs.temporal.io — |
| 4 | +// centralizing the canonical object here (instead of hand-authoring it in |
| 5 | +// multiple places) is how we keep that from happening again on this |
| 6 | +// property. temporal.io and learn.temporal.io maintain their own copies in |
| 7 | +// their own codebases and need to be kept byte-identical to this by hand. |
| 8 | + |
| 9 | +export const ORGANIZATION_ID = 'https://temporal.io/#organization'; |
| 10 | +export const SOFTWARE_APPLICATION_ID = 'https://temporal.io/#software'; |
| 11 | + |
| 12 | +// Rendered in full only on the docs landing page (see |
| 13 | +// src/theme/DocItem/StructuredData). Every other page should reference it |
| 14 | +// via `organizationReference` instead of repeating the full property set. |
| 15 | +export const organizationSchema = { |
| 16 | + '@type': 'Organization', |
| 17 | + '@id': ORGANIZATION_ID, |
| 18 | + name: 'Temporal', |
| 19 | + alternateName: 'Temporal Technologies', |
| 20 | + url: 'https://temporal.io/', |
| 21 | + description: |
| 22 | + 'Temporal is a durable execution platform for building reliable, scalable applications using workflows and activities.', |
| 23 | + logo: { |
| 24 | + '@type': 'ImageObject', |
| 25 | + url: 'https://temporal.io/images/logos/logo-temporal-dark-on-white.png', |
| 26 | + width: 512, |
| 27 | + height: 512, |
| 28 | + }, |
| 29 | + sameAs: [ |
| 30 | + 'https://www.youtube.com/temporalio', |
| 31 | + 'https://www.linkedin.com/company/temporal-technologies', |
| 32 | + 'https://github.com/temporalio', |
| 33 | + 'https://x.com/temporalio', |
| 34 | + ], |
| 35 | +}; |
| 36 | + |
| 37 | +export const softwareApplicationSchema = { |
| 38 | + '@type': 'SoftwareApplication', |
| 39 | + '@id': SOFTWARE_APPLICATION_ID, |
| 40 | + name: 'Temporal', |
| 41 | + applicationCategory: 'DeveloperApplication', |
| 42 | + operatingSystem: 'Cross-platform', |
| 43 | + url: 'https://temporal.io', |
| 44 | + downloadUrl: 'https://github.com/temporalio/temporal', |
| 45 | + description: |
| 46 | + 'Temporal is a durable execution platform for building reliable, scalable applications using workflows and activities. This entry describes the open-source server distribution.', |
| 47 | + publisher: { '@id': ORGANIZATION_ID }, |
| 48 | + offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' }, |
| 49 | +}; |
| 50 | + |
| 51 | +// Bare reference for every non-canonical page — attach as `publisher` on |
| 52 | +// that page's own schema rather than repeating the full Organization block. |
| 53 | +export const organizationReference = { |
| 54 | + '@type': 'Organization', |
| 55 | + '@id': ORGANIZATION_ID, |
| 56 | +}; |
0 commit comments