optbrew 0.0.0-stage → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/.claude-plugin/marketplace.json +6 -0
  2. package/.claude-plugin/plugin.json +6 -0
  3. package/.codex-plugin/plugin.json +13 -0
  4. package/CHANGELOG.md +50 -0
  5. package/LICENSE +21 -0
  6. package/README.ko.md +149 -0
  7. package/README.md +148 -2
  8. package/THIRD_PARTY_NOTICES.md +10 -0
  9. package/bin/optbrew.mjs +4 -0
  10. package/docs/platforms.md +107 -0
  11. package/docs/release.md +14 -0
  12. package/lib/cli.mjs +116 -0
  13. package/lib/doctor.mjs +45 -0
  14. package/lib/install.mjs +158 -0
  15. package/lib/paths.mjs +30 -0
  16. package/lib/records.mjs +44 -0
  17. package/lib/reinstall.mjs +92 -0
  18. package/lib/transaction.mjs +205 -0
  19. package/lib/update.mjs +189 -0
  20. package/package.json +39 -4
  21. package/plugin.json +13 -0
  22. package/skills/optbrew/LICENSE +21 -0
  23. package/skills/optbrew/SKILL.md +17 -0
  24. package/skills/optbrew/THIRD_PARTY_NOTICES.md +10 -0
  25. package/skills/optbrew/agents/openai.yaml +4 -0
  26. package/skills/optbrew/bundle-manifest.json +687 -0
  27. package/skills/optbrew/licenses/firecrawl-seo-audit.txt +15 -0
  28. package/skills/optbrew/licenses/magnus-seo.txt +21 -0
  29. package/skills/optbrew/licenses/marketing-search.txt +21 -0
  30. package/skills/optbrew/licenses/mblode-seo.txt +21 -0
  31. package/skills/optbrew/licenses/naver-searchadvisor.txt +29 -0
  32. package/skills/optbrew/licenses/seranking-seo.txt +21 -0
  33. package/skills/optbrew/modules/firecrawl-seo-audit/GUIDE.md +64 -0
  34. package/skills/optbrew/modules/magnus-seo/GUIDE.md +79 -0
  35. package/skills/optbrew/modules/magnus-seo/README.md +45 -0
  36. package/skills/optbrew/modules/magnus-seo/assets/audit-report-template.md +76 -0
  37. package/skills/optbrew/modules/magnus-seo/references/aeo-methodology.md +105 -0
  38. package/skills/optbrew/modules/magnus-seo/references/agent-readable-content.md +28 -0
  39. package/skills/optbrew/modules/magnus-seo/references/content-and-entity-architecture.md +100 -0
  40. package/skills/optbrew/modules/magnus-seo/references/content-strategy-seo.md +142 -0
  41. package/skills/optbrew/modules/magnus-seo/references/discovery-and-freshness.md +47 -0
  42. package/skills/optbrew/modules/magnus-seo/references/evidence-boundaries.md +75 -0
  43. package/skills/optbrew/modules/magnus-seo/references/ghost-metadata.md +204 -0
  44. package/skills/optbrew/modules/magnus-seo/references/implementation-playbook.md +114 -0
  45. package/skills/optbrew/modules/magnus-seo/references/measurement-and-experimentation.md +47 -0
  46. package/skills/optbrew/modules/magnus-seo/references/onpage-seo.md +154 -0
  47. package/skills/optbrew/modules/magnus-seo/references/platform-guidance.md +30 -0
  48. package/skills/optbrew/modules/magnus-seo/references/schema-markup.md +244 -0
  49. package/skills/optbrew/modules/magnus-seo/references/source-index.md +36 -0
  50. package/skills/optbrew/modules/magnus-seo/references/structured-data.md +56 -0
  51. package/skills/optbrew/modules/magnus-seo/references/technical-seo.md +99 -0
  52. package/skills/optbrew/modules/magnus-seo/scripts/aeo_audit.py +158 -0
  53. package/skills/optbrew/modules/magnus-seo/scripts/build_prompt_matrix.py +52 -0
  54. package/skills/optbrew/modules/magnus-seo/templates/aeo-implementation-plan.md +53 -0
  55. package/skills/optbrew/modules/magnus-seo/templates/citation-observation-log.md +16 -0
  56. package/skills/optbrew/modules/magnus-seo/templates/llms.txt.template +15 -0
  57. package/skills/optbrew/modules/magnus-seo/templates/question-cluster.md +27 -0
  58. package/skills/optbrew/modules/magnus-seo/templates/robots-ai-crawlers.txt +23 -0
  59. package/skills/optbrew/modules/marketing-search/skills/ai-seo/GUIDE.md +483 -0
  60. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/agent-readiness.md +57 -0
  61. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/citations-vs-recommendations.md +85 -0
  62. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/content-patterns.md +287 -0
  63. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/content-types.md +71 -0
  64. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/format-volatility.md +98 -0
  65. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/okf.md +104 -0
  66. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/platform-ranking-factors.md +154 -0
  67. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/youtube-ai-citations.md +60 -0
  68. package/skills/optbrew/modules/marketing-search/skills/analytics/GUIDE.md +303 -0
  69. package/skills/optbrew/modules/marketing-search/skills/analytics/references/event-library.md +260 -0
  70. package/skills/optbrew/modules/marketing-search/skills/analytics/references/ga4-implementation.md +300 -0
  71. package/skills/optbrew/modules/marketing-search/skills/analytics/references/gtm-implementation.md +390 -0
  72. package/skills/optbrew/modules/marketing-search/skills/content-strategy/GUIDE.md +432 -0
  73. package/skills/optbrew/modules/marketing-search/skills/content-strategy/references/content-distribution.md +83 -0
  74. package/skills/optbrew/modules/marketing-search/skills/content-strategy/references/headless-cms.md +194 -0
  75. package/skills/optbrew/modules/marketing-search/skills/programmatic-seo/GUIDE.md +231 -0
  76. package/skills/optbrew/modules/marketing-search/skills/programmatic-seo/references/playbooks.md +308 -0
  77. package/skills/optbrew/modules/marketing-search/skills/schema/GUIDE.md +172 -0
  78. package/skills/optbrew/modules/marketing-search/skills/schema/references/schema-examples.md +398 -0
  79. package/skills/optbrew/modules/marketing-search/skills/seo-audit/GUIDE.md +492 -0
  80. package/skills/optbrew/modules/marketing-search/skills/seo-audit/references/ai-writing-detection.md +200 -0
  81. package/skills/optbrew/modules/marketing-search/skills/seo-audit/references/international-seo.md +230 -0
  82. package/skills/optbrew/modules/marketing-search/skills/site-architecture/GUIDE.md +350 -0
  83. package/skills/optbrew/modules/marketing-search/skills/site-architecture/references/mermaid-templates.md +216 -0
  84. package/skills/optbrew/modules/marketing-search/skills/site-architecture/references/navigation-patterns.md +305 -0
  85. package/skills/optbrew/modules/marketing-search/skills/site-architecture/references/site-type-templates.md +293 -0
  86. package/skills/optbrew/modules/mblode-seo/GUIDE.md +74 -0
  87. package/skills/optbrew/modules/mblode-seo/references/answer-engines.md +58 -0
  88. package/skills/optbrew/modules/mblode-seo/references/audit.md +78 -0
  89. package/skills/optbrew/modules/mblode-seo/references/brief-template.md +47 -0
  90. package/skills/optbrew/modules/mblode-seo/references/monitoring.md +56 -0
  91. package/skills/optbrew/modules/mblode-seo/references/nextjs-implementation.md +65 -0
  92. package/skills/optbrew/modules/mblode-seo/references/research-protocol.md +37 -0
  93. package/skills/optbrew/modules/mblode-seo/references/sources.md +47 -0
  94. package/skills/optbrew/modules/mblode-seo/references/validation-evidence.md +21 -0
  95. package/skills/optbrew/modules/naver-searchadvisor/GUIDE.md +75 -0
  96. package/skills/optbrew/modules/naver-searchadvisor/NOTICE.md +59 -0
  97. package/skills/optbrew/modules/naver-searchadvisor/references/INDEX.md +97 -0
  98. package/skills/optbrew/modules/naver-searchadvisor/scripts/audit.mjs +742 -0
  99. package/skills/optbrew/modules/naver-searchadvisor/scripts/robots.mjs +77 -0
  100. package/skills/optbrew/modules/seranking-seo/skills/seo-ai-search-share-of-voice/GUIDE.md +94 -0
  101. package/skills/optbrew/modules/seranking-seo/skills/seo-api/GUIDE.md +186 -0
  102. package/skills/optbrew/modules/seranking-seo/skills/seo-api/references/api-surface-map.md +207 -0
  103. package/skills/optbrew/modules/seranking-seo/skills/seo-api/references/auth-and-keys.md +182 -0
  104. package/skills/optbrew/modules/seranking-seo/skills/seo-api/references/integration-patterns.md +283 -0
  105. package/skills/optbrew/modules/seranking-seo/skills/seo-api/references/rate-limits-and-credits.md +235 -0
  106. package/skills/optbrew/modules/seranking-seo/skills/seo-competitor-gap-analysis/GUIDE.md +117 -0
  107. package/skills/optbrew/modules/seranking-seo/skills/seo-content-audit/GUIDE.md +155 -0
  108. package/skills/optbrew/modules/seranking-seo/skills/seo-content-audit/references/cite.md +84 -0
  109. package/skills/optbrew/modules/seranking-seo/skills/seo-content-audit/references/core-eeat.md +147 -0
  110. package/skills/optbrew/modules/seranking-seo/skills/seo-content-audit/templates/verdict.md +63 -0
  111. package/skills/optbrew/modules/seranking-seo/skills/seo-firecrawl/GUIDE.md +141 -0
  112. package/skills/optbrew/modules/seranking-seo/skills/seo-firecrawl/references/preflight.md +73 -0
  113. package/skills/optbrew/modules/seranking-seo/skills/seo-geo/GUIDE.md +159 -0
  114. package/skills/optbrew/modules/seranking-seo/skills/seo-google/GUIDE.md +393 -0
  115. package/skills/optbrew/modules/seranking-seo/skills/seo-google/assets/templates/cwv-audit-report.md +48 -0
  116. package/skills/optbrew/modules/seranking-seo/skills/seo-google/assets/templates/gsc-performance-report.md +44 -0
  117. package/skills/optbrew/modules/seranking-seo/skills/seo-google/assets/templates/indexation-status-report.md +43 -0
  118. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/auth-setup.md +160 -0
  119. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/cross-skill-integration.md +187 -0
  120. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/ga4-data-api.md +184 -0
  121. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/indexing-api.md +109 -0
  122. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/keyword-planner-api.md +66 -0
  123. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/nlp-api.md +55 -0
  124. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/pagespeed-crux-api.md +204 -0
  125. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/rate-limits-quotas.md +75 -0
  126. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/search-console-api.md +156 -0
  127. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/supplementary-apis.md +99 -0
  128. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/youtube-api.md +49 -0
  129. package/skills/optbrew/modules/seranking-seo/skills/seo-keyword-niche/GUIDE.md +174 -0
  130. package/skills/optbrew/modules/seranking-seo/skills/seo-page/GUIDE.md +174 -0
  131. package/skills/optbrew/modules/seranking-seo/skills/seo-plan/GUIDE.md +220 -0
  132. package/skills/optbrew/modules/seranking-seo/skills/seo-schema/GUIDE.md +135 -0
  133. package/skills/optbrew/modules/seranking-seo/skills/seo-schema/references/google-rich-results.md +89 -0
  134. package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/article.json +23 -0
  135. package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/breadcrumb-list.json +18 -0
  136. package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/faq-page.json +22 -0
  137. package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/local-business.json +32 -0
  138. package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/product.json +25 -0
  139. package/skills/optbrew/modules/seranking-seo/skills/seo-sitemap/GUIDE.md +128 -0
  140. package/skills/optbrew/modules/seranking-seo/skills/seo-technical-audit/GUIDE.md +235 -0
  141. package/skills/optbrew/modules/seranking-seo/skills/seo-technical-audit/references/severity-mapping.md +133 -0
  142. package/skills/optbrew/references/ai-crawlers.json +21 -0
  143. package/skills/optbrew/references/ai-crawlers.md +24 -0
  144. package/skills/optbrew/references/api.md +45 -0
  145. package/skills/optbrew/references/check-registry.json +28 -0
  146. package/skills/optbrew/references/evidence.md +9 -0
  147. package/skills/optbrew/references/intake.md +9 -0
  148. package/skills/optbrew/references/measurement.md +29 -0
  149. package/skills/optbrew/references/policies.md +7 -0
  150. package/skills/optbrew/references/profiles.json +13 -0
  151. package/skills/optbrew/references/remediations.json +12 -0
  152. package/skills/optbrew/references/report.md +29 -0
  153. package/skills/optbrew/references/routing.md +15 -0
  154. package/skills/optbrew/references/schemas/contract.schema.json +51 -0
  155. package/skills/optbrew/references/scoring.md +62 -0
  156. package/skills/optbrew/scripts/adapters/anthropic.mjs +116 -0
  157. package/skills/optbrew/scripts/adapters/imports.mjs +81 -0
  158. package/skills/optbrew/scripts/audit.mjs +124 -0
  159. package/skills/optbrew/scripts/cli.mjs +41 -0
  160. package/skills/optbrew/scripts/core/bootstrap.mjs +31 -0
  161. package/skills/optbrew/scripts/core/bundle.mjs +73 -0
  162. package/skills/optbrew/scripts/core/capabilities.mjs +19 -0
  163. package/skills/optbrew/scripts/core/collector.mjs +250 -0
  164. package/skills/optbrew/scripts/core/compare.mjs +47 -0
  165. package/skills/optbrew/scripts/core/contracts.mjs +144 -0
  166. package/skills/optbrew/scripts/core/cost-ledger.mjs +95 -0
  167. package/skills/optbrew/scripts/core/crawlers.mjs +11 -0
  168. package/skills/optbrew/scripts/core/derive.mjs +168 -0
  169. package/skills/optbrew/scripts/core/facts.mjs +189 -0
  170. package/skills/optbrew/scripts/core/findings.mjs +54 -0
  171. package/skills/optbrew/scripts/core/html.mjs +53 -0
  172. package/skills/optbrew/scripts/core/metrics.mjs +97 -0
  173. package/skills/optbrew/scripts/core/protocol.mjs +125 -0
  174. package/skills/optbrew/scripts/core/report.mjs +742 -0
  175. package/skills/optbrew/scripts/core/scope.mjs +52 -0
  176. package/skills/optbrew/scripts/core/score.mjs +71 -0
  177. package/skills/optbrew/scripts/core/weights.mjs +139 -0
  178. package/skills/optbrew/source-lock.json +2686 -0
  179. package/source-lock.json +2686 -0
@@ -0,0 +1,398 @@
1
+ # Schema Markup Examples
2
+
3
+ Complete JSON-LD examples for common schema types.
4
+
5
+ ## Contents
6
+ - Organization
7
+ - WebSite (with SearchAction)
8
+ - Article / BlogPosting
9
+ - Product
10
+ - SoftwareApplication
11
+ - FAQPage
12
+ - HowTo
13
+ - BreadcrumbList
14
+ - LocalBusiness
15
+ - Event
16
+ - Multiple Schema Types
17
+ - Implementation Example (Next.js)
18
+
19
+ ## Organization
20
+
21
+ For company/brand homepage or about page.
22
+
23
+ ```json
24
+ {
25
+ "@context": "https://schema.org",
26
+ "@type": "Organization",
27
+ "name": "Example Company",
28
+ "url": "https://example.com",
29
+ "logo": "https://example.com/logo.png",
30
+ "sameAs": [
31
+ "https://twitter.com/example",
32
+ "https://linkedin.com/company/example",
33
+ "https://facebook.com/example"
34
+ ],
35
+ "contactPoint": {
36
+ "@type": "ContactPoint",
37
+ "telephone": "+1-555-555-5555",
38
+ "contactType": "customer service"
39
+ }
40
+ }
41
+ ```
42
+
43
+ ---
44
+
45
+ ## WebSite (with SearchAction)
46
+
47
+ For homepage, enables sitelinks search box.
48
+
49
+ ```json
50
+ {
51
+ "@context": "https://schema.org",
52
+ "@type": "WebSite",
53
+ "name": "Example",
54
+ "url": "https://example.com",
55
+ "potentialAction": {
56
+ "@type": "SearchAction",
57
+ "target": {
58
+ "@type": "EntryPoint",
59
+ "urlTemplate": "https://example.com/search?q={search_term_string}"
60
+ },
61
+ "query-input": "required name=search_term_string"
62
+ }
63
+ }
64
+ ```
65
+
66
+ ---
67
+
68
+ ## Article / BlogPosting
69
+
70
+ For blog posts and news articles.
71
+
72
+ ```json
73
+ {
74
+ "@context": "https://schema.org",
75
+ "@type": "Article",
76
+ "headline": "How to Implement Schema Markup",
77
+ "image": "https://example.com/image.jpg",
78
+ "datePublished": "2024-01-15T08:00:00+00:00",
79
+ "dateModified": "2024-01-20T10:00:00+00:00",
80
+ "author": {
81
+ "@type": "Person",
82
+ "name": "Jane Doe",
83
+ "url": "https://example.com/authors/jane"
84
+ },
85
+ "publisher": {
86
+ "@type": "Organization",
87
+ "name": "Example Company",
88
+ "logo": {
89
+ "@type": "ImageObject",
90
+ "url": "https://example.com/logo.png"
91
+ }
92
+ },
93
+ "description": "A complete guide to implementing schema markup...",
94
+ "mainEntityOfPage": {
95
+ "@type": "WebPage",
96
+ "@id": "https://example.com/schema-guide"
97
+ }
98
+ }
99
+ ```
100
+
101
+ ---
102
+
103
+ ## Product
104
+
105
+ For product pages (e-commerce or SaaS).
106
+
107
+ ```json
108
+ {
109
+ "@context": "https://schema.org",
110
+ "@type": "Product",
111
+ "name": "Premium Widget",
112
+ "image": "https://example.com/widget.jpg",
113
+ "description": "Our best-selling widget for professionals",
114
+ "sku": "WIDGET-001",
115
+ "brand": {
116
+ "@type": "Brand",
117
+ "name": "Example Co"
118
+ },
119
+ "offers": {
120
+ "@type": "Offer",
121
+ "url": "https://example.com/products/widget",
122
+ "priceCurrency": "USD",
123
+ "price": "99.99",
124
+ "availability": "https://schema.org/InStock",
125
+ "priceValidUntil": "2024-12-31"
126
+ },
127
+ "aggregateRating": {
128
+ "@type": "AggregateRating",
129
+ "ratingValue": "4.8",
130
+ "reviewCount": "127"
131
+ }
132
+ }
133
+ ```
134
+
135
+ ---
136
+
137
+ ## SoftwareApplication
138
+
139
+ For SaaS product pages and app landing pages.
140
+
141
+ ```json
142
+ {
143
+ "@context": "https://schema.org",
144
+ "@type": "SoftwareApplication",
145
+ "name": "Example App",
146
+ "applicationCategory": "BusinessApplication",
147
+ "operatingSystem": "Web, iOS, Android",
148
+ "offers": {
149
+ "@type": "Offer",
150
+ "price": "0",
151
+ "priceCurrency": "USD"
152
+ },
153
+ "aggregateRating": {
154
+ "@type": "AggregateRating",
155
+ "ratingValue": "4.6",
156
+ "ratingCount": "1250"
157
+ }
158
+ }
159
+ ```
160
+
161
+ ---
162
+
163
+ ## FAQPage
164
+
165
+ For pages with frequently asked questions.
166
+
167
+ ```json
168
+ {
169
+ "@context": "https://schema.org",
170
+ "@type": "FAQPage",
171
+ "mainEntity": [
172
+ {
173
+ "@type": "Question",
174
+ "name": "What is schema markup?",
175
+ "acceptedAnswer": {
176
+ "@type": "Answer",
177
+ "text": "Schema markup is a structured data vocabulary that helps search engines understand your content..."
178
+ }
179
+ },
180
+ {
181
+ "@type": "Question",
182
+ "name": "How do I implement schema?",
183
+ "acceptedAnswer": {
184
+ "@type": "Answer",
185
+ "text": "The recommended approach is to use JSON-LD format, placing the script in your page's head..."
186
+ }
187
+ }
188
+ ]
189
+ }
190
+ ```
191
+
192
+ ---
193
+
194
+ ## HowTo
195
+
196
+ For instructional content and tutorials.
197
+
198
+ ```json
199
+ {
200
+ "@context": "https://schema.org",
201
+ "@type": "HowTo",
202
+ "name": "How to Add Schema Markup to Your Website",
203
+ "description": "A step-by-step guide to implementing JSON-LD schema",
204
+ "totalTime": "PT15M",
205
+ "step": [
206
+ {
207
+ "@type": "HowToStep",
208
+ "name": "Choose your schema type",
209
+ "text": "Identify the appropriate schema type for your page content...",
210
+ "url": "https://example.com/guide#step1"
211
+ },
212
+ {
213
+ "@type": "HowToStep",
214
+ "name": "Write the JSON-LD",
215
+ "text": "Create the JSON-LD markup following schema.org specifications...",
216
+ "url": "https://example.com/guide#step2"
217
+ },
218
+ {
219
+ "@type": "HowToStep",
220
+ "name": "Add to your page",
221
+ "text": "Insert the script tag in your page's head section...",
222
+ "url": "https://example.com/guide#step3"
223
+ }
224
+ ]
225
+ }
226
+ ```
227
+
228
+ ---
229
+
230
+ ## BreadcrumbList
231
+
232
+ For any page with breadcrumb navigation.
233
+
234
+ ```json
235
+ {
236
+ "@context": "https://schema.org",
237
+ "@type": "BreadcrumbList",
238
+ "itemListElement": [
239
+ {
240
+ "@type": "ListItem",
241
+ "position": 1,
242
+ "name": "Home",
243
+ "item": "https://example.com"
244
+ },
245
+ {
246
+ "@type": "ListItem",
247
+ "position": 2,
248
+ "name": "Blog",
249
+ "item": "https://example.com/blog"
250
+ },
251
+ {
252
+ "@type": "ListItem",
253
+ "position": 3,
254
+ "name": "SEO Guide",
255
+ "item": "https://example.com/blog/seo-guide"
256
+ }
257
+ ]
258
+ }
259
+ ```
260
+
261
+ ---
262
+
263
+ ## LocalBusiness
264
+
265
+ For local business location pages.
266
+
267
+ ```json
268
+ {
269
+ "@context": "https://schema.org",
270
+ "@type": "LocalBusiness",
271
+ "name": "Example Coffee Shop",
272
+ "image": "https://example.com/shop.jpg",
273
+ "address": {
274
+ "@type": "PostalAddress",
275
+ "streetAddress": "123 Main Street",
276
+ "addressLocality": "San Francisco",
277
+ "addressRegion": "CA",
278
+ "postalCode": "94102",
279
+ "addressCountry": "US"
280
+ },
281
+ "geo": {
282
+ "@type": "GeoCoordinates",
283
+ "latitude": "37.7749",
284
+ "longitude": "-122.4194"
285
+ },
286
+ "telephone": "+1-555-555-5555",
287
+ "openingHoursSpecification": [
288
+ {
289
+ "@type": "OpeningHoursSpecification",
290
+ "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
291
+ "opens": "08:00",
292
+ "closes": "18:00"
293
+ }
294
+ ],
295
+ "priceRange": "$$"
296
+ }
297
+ ```
298
+
299
+ ---
300
+
301
+ ## Event
302
+
303
+ For event pages, webinars, conferences.
304
+
305
+ ```json
306
+ {
307
+ "@context": "https://schema.org",
308
+ "@type": "Event",
309
+ "name": "Annual Marketing Conference",
310
+ "startDate": "2024-06-15T09:00:00-07:00",
311
+ "endDate": "2024-06-15T17:00:00-07:00",
312
+ "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
313
+ "eventStatus": "https://schema.org/EventScheduled",
314
+ "location": {
315
+ "@type": "VirtualLocation",
316
+ "url": "https://example.com/conference"
317
+ },
318
+ "image": "https://example.com/conference.jpg",
319
+ "description": "Join us for our annual marketing conference...",
320
+ "offers": {
321
+ "@type": "Offer",
322
+ "url": "https://example.com/conference/tickets",
323
+ "price": "199",
324
+ "priceCurrency": "USD",
325
+ "availability": "https://schema.org/InStock",
326
+ "validFrom": "2024-01-01"
327
+ },
328
+ "performer": {
329
+ "@type": "Organization",
330
+ "name": "Example Company"
331
+ },
332
+ "organizer": {
333
+ "@type": "Organization",
334
+ "name": "Example Company",
335
+ "url": "https://example.com"
336
+ }
337
+ }
338
+ ```
339
+
340
+ ---
341
+
342
+ ## Multiple Schema Types
343
+
344
+ Combine multiple schema types using @graph.
345
+
346
+ ```json
347
+ {
348
+ "@context": "https://schema.org",
349
+ "@graph": [
350
+ {
351
+ "@type": "Organization",
352
+ "@id": "https://example.com/#organization",
353
+ "name": "Example Company",
354
+ "url": "https://example.com"
355
+ },
356
+ {
357
+ "@type": "WebSite",
358
+ "@id": "https://example.com/#website",
359
+ "url": "https://example.com",
360
+ "name": "Example",
361
+ "publisher": {
362
+ "@id": "https://example.com/#organization"
363
+ }
364
+ },
365
+ {
366
+ "@type": "BreadcrumbList",
367
+ "itemListElement": [...]
368
+ }
369
+ ]
370
+ }
371
+ ```
372
+
373
+ ---
374
+
375
+ ## Implementation Example (Next.js)
376
+
377
+ ```jsx
378
+ export default function ProductPage({ product }) {
379
+ const schema = {
380
+ "@context": "https://schema.org",
381
+ "@type": "Product",
382
+ name: product.name,
383
+ // ... other properties
384
+ };
385
+
386
+ return (
387
+ <>
388
+ <Head>
389
+ <script
390
+ type="application/ld+json"
391
+ dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
392
+ />
393
+ </Head>
394
+ {/* Page content */}
395
+ </>
396
+ );
397
+ }
398
+ ```