create-ailk 0.6.0 → 0.7.0
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.
- package/README.md +44 -5
- package/component-catalog.json +146 -21
- package/component-catalog.md +9 -6
- package/dist/add-module-core.d.ts +22 -0
- package/dist/add-module-core.js +50 -0
- package/dist/add-module.d.ts +89 -0
- package/dist/add-module.js +334 -0
- package/dist/category-profile.d.ts +126 -0
- package/dist/category-profile.js +262 -0
- package/dist/cli.js +124 -13
- package/dist/copy.d.ts +14 -0
- package/dist/copy.js +38 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +6 -1
- package/dist/lib/extract-module-bundle.d.ts +76 -2
- package/dist/lib/extract-module-bundle.js +219 -8
- package/dist/lib/license-key-files.d.ts +15 -0
- package/dist/lib/license-key-files.js +102 -0
- package/dist/lib/module-license-gate.d.ts +6 -1
- package/dist/lib/module-license-gate.js +6 -1
- package/dist/lib/pro-callout.d.ts +16 -10
- package/dist/lib/pro-callout.js +27 -4
- package/dist/license-set.d.ts +34 -0
- package/dist/license-set.js +194 -0
- package/dist/module-architecture.d.ts +20 -0
- package/dist/module-architecture.js +77 -19
- package/dist/modules/commerce/0.6.0.tar.gz +0 -0
- package/dist/modules/commerce/0.6.1.tar.gz +0 -0
- package/dist/modules/docs-blog/0.6.0.tar.gz +0 -0
- package/dist/modules/docs-blog/0.6.1.tar.gz +0 -0
- package/dist/modules/marketing-site/0.6.1.tar.gz +0 -0
- package/dist/modules/minimalism-site/0.6.1.tar.gz +0 -0
- package/dist/modules/multi-tenant/0.6.0.tar.gz +0 -0
- package/dist/modules/multi-tenant/0.6.1.tar.gz +0 -0
- package/dist/modules/saas-product/0.6.1.tar.gz +0 -0
- package/dist/modules/scheduling/0.6.0.tar.gz +0 -0
- package/dist/modules/scheduling/0.6.1.tar.gz +0 -0
- package/dist/modules/signal-collectors/0.6.0.tar.gz +0 -0
- package/dist/modules/signal-collectors/0.6.1.tar.gz +0 -0
- package/dist/modules/simple-service/0.6.1.tar.gz +0 -0
- package/dist/modules/workspace/0.6.0.tar.gz +0 -0
- package/dist/modules/workspace/0.6.1.tar.gz +0 -0
- package/dist/parse-args.d.ts +7 -0
- package/dist/parse-args.js +23 -1
- package/dist/programmatic.d.ts +46 -0
- package/dist/programmatic.js +144 -19
- package/dist/site-chrome.d.ts +18 -7
- package/dist/site-chrome.js +32 -14
- package/dist/site-roster.d.ts +127 -0
- package/dist/site-roster.js +494 -0
- package/dist/surfaces.d.ts +20 -7
- package/dist/surfaces.js +149 -28
- package/dist/sync-routes.d.ts +9 -0
- package/dist/sync-routes.js +2 -2
- package/dist/template-manifest.d.ts +58 -2
- package/dist/template-manifest.js +196 -69
- package/package.json +6 -4
- package/site-templates/_base/content/en/BookCall/book-call.mdx +53 -0
- package/site-templates/_base/content/en/GlossaryList/glossary.mdx +66 -0
- package/site-templates/_base/content/en/NewsletterSignup/newsletter.mdx +68 -0
- package/site-templates/_base/content/en/Pricing/pricing.mdx +71 -62
- package/site-templates/_base/content/en/PrivacyPage/privacy.mdx +2 -3
- package/site-templates/_base/content/en/TermsPage/terms.mdx +2 -3
- package/site-templates/_base/content/en/UseCase/first-use-case.mdx +23 -0
- package/site-templates/_base/content/en/UseCase/second-use-case.mdx +23 -0
- package/site-templates/_base/content/en/UseCase/third-use-case.mdx +23 -0
- package/site-templates/designs/minimalism/DESIGN.md +162 -0
- package/site-templates/designs/standard/DESIGN.md +162 -0
- package/site-templates/marketing-site/DESIGN.md +162 -0
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.json +312 -57
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.md +209 -90
- package/site-templates/marketing-site/ailk-template.json +1 -0
- package/site-templates/marketing-site-free/DESIGN.md +162 -0
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.json +260 -66
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.md +294 -114
- package/site-templates/marketing-site-free/ailk-template.json +3 -2
- package/site-templates/minimalism-site/DESIGN.md +162 -0
- package/site-templates/minimalism-site/TEMPLATE-MANIFEST.json +246 -19
- package/site-templates/minimalism-site/TEMPLATE-MANIFEST.md +185 -51
- package/site-templates/minimalism-site/ailk-template.json +3 -2
- package/site-templates/minimalism-site/content/en/BookCall/book-call.mdx +53 -0
- package/site-templates/minimalism-site/content/en/ContactPage/contact.mdx +3 -37
- package/site-templates/minimalism-site/content/en/PurchasePolicyPage/purchase-policy.mdx +124 -0
- package/site-templates/saas-product/DESIGN.md +162 -0
- package/site-templates/simple-service/DESIGN.md +162 -0
- package/site-templates/simple-service/TEMPLATE-MANIFEST.json +135 -26
- package/site-templates/simple-service/TEMPLATE-MANIFEST.md +114 -59
- package/site-templates/simple-service/ailk-template.json +4 -3
- package/site-templates/simple-service/content/en/BookCall/book-call.mdx +53 -0
- package/site-templates/simple-service/content/en/ContactPage/contact.mdx +1 -36
- package/site-templates/simple-service/content/en/PurchasePolicyPage/purchase-policy.mdx +124 -0
- package/templates/.claude/settings.json +15 -0
- package/templates/.claude/skills/README.md +8 -8
- package/templates/.claude/skills/{scaffold-auth → add-auth}/SKILL.md +7 -7
- package/templates/.claude/skills/{scaffold-auth → add-auth}/references/env-vars.md +2 -2
- package/templates/.claude/skills/{scaffold-auth → add-auth}/references/oauth-app-setup.md +3 -3
- package/templates/.claude/skills/{scaffold-page → add-page}/SKILL.md +76 -62
- package/templates/.claude/skills/add-page/references/page-types.md +111 -0
- package/templates/.claude/skills/{scaffold-page → add-page}/templates/content.mdx.tmpl +4 -4
- package/templates/.claude/skills/{scaffold-page → add-page}/templates/route.tsx.tmpl +1 -1
- package/templates/.claude/skills/{audit-site → check-site}/SKILL.md +16 -17
- package/templates/.claude/skills/{audit-site → check-site}/references/common-errors.md +3 -3
- package/templates/.claude/skills/{audit-site → check-site}/references/findings-glossary.md +16 -14
- package/templates/.claude/skills/{audit-site → check-site}/references/severity-levels.md +1 -1
- package/templates/.claude/skills/fill-page/SKILL.md +180 -0
- package/templates/.claude/skills/fill-page/profiles/plumbing.yaml +80 -0
- package/templates/.claude/skills/fill-page/references/section-sources.md +41 -0
- package/templates/.claude/skills/{provision-config → setup-deploy}/SKILL.md +8 -8
- package/templates/.claude/skills/{provision-config → setup-deploy}/references/env-vars-template.md +2 -2
- package/templates/.claude/skills/{provision-config → setup-deploy}/references/runbook-template.md +8 -8
- package/templates/.claude/skills/{provision-config → setup-deploy}/references/vercel-json-template.md +1 -1
- package/templates/.claude/skills/upgrade-plan/SKILL.md +117 -0
- package/templates/.claude/skills/upgrade-plan/references/options.md +24 -0
- package/templates/.claude/skills/upgrade-plan/scripts/upgrade-plan.ts +527 -0
- package/templates/.github/workflows/ci.yml +5 -0
- package/templates/CLAUDE.md +10 -5
- package/templates/DESIGN.md +162 -0
- package/templates/README.md +134 -38
- package/templates/apps/api/.env.example +2 -1
- package/templates/apps/api/package.json +1 -1
- package/templates/apps/api/src/config/__tests__/index.test.ts +37 -2
- package/templates/apps/api/src/config/index.ts +19 -6
- package/templates/apps/api/src/lib/license-key-store.ts +45 -0
- package/templates/apps/api/src/lib/site.ts +5 -3
- package/templates/apps/api/src/middleware/__tests__/auth.database-not-configured.test.ts +97 -0
- package/templates/apps/api/src/middleware/auth.ts +9 -0
- package/templates/apps/api/src/routes/content/__tests__/get-page.test.ts +127 -5
- package/templates/apps/api/src/routes/content/get-page.ts +86 -2
- package/templates/apps/api/src/server.ts +6 -0
- package/templates/apps/mcp/__tests__/audit-single-page.test.ts +75 -1
- package/templates/apps/mcp/__tests__/lib/audit-single-page-readiness-scan.test.ts +57 -9
- package/templates/apps/mcp/package.json +2 -1
- package/templates/apps/mcp/src/index.ts +7 -0
- package/templates/apps/mcp/src/lib/audit-single-page.ts +36 -10
- package/templates/apps/mcp/src/lib/license-key-store.ts +45 -0
- package/templates/apps/web/PRODUCT.md +86 -0
- package/templates/apps/web/__tests__/setup.ts +18 -0
- package/templates/apps/web/app/[locale]/(auth)/forgot-password/forgot-password-card.tsx +10 -2
- package/templates/apps/web/app/[locale]/(auth)/layout.tsx +2 -2
- package/templates/apps/web/app/[locale]/(auth)/reset-password/reset-password-card.tsx +10 -4
- package/templates/apps/web/app/[locale]/(auth)/sign-in/sign-in-card.tsx +22 -14
- package/templates/apps/web/app/[locale]/(auth)/sign-up/sign-up-card.tsx +26 -18
- package/templates/apps/web/app/[locale]/(authed)/account/page.tsx +12 -4
- package/templates/apps/web/app/[locale]/[slug]/__tests__/page.test.tsx +35 -4
- package/templates/apps/web/app/[locale]/[slug]/page.tsx +49 -9
- package/templates/apps/web/app/[locale]/book-a-call/page.tsx +50 -0
- package/templates/apps/web/app/[locale]/careers/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/case-studies/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/clients/__tests__/page-renderer-migration.test.tsx +3 -4
- package/templates/apps/web/app/[locale]/contact/ContactForm.tsx +94 -33
- package/templates/apps/web/app/[locale]/contact/ConversationalIntakeWrapper.tsx +53 -23
- package/templates/apps/web/app/[locale]/contact/__tests__/ContactForm.test.tsx +96 -0
- package/templates/apps/web/app/[locale]/contact/__tests__/ConversationalIntakeWrapper.test.tsx +84 -2
- package/templates/apps/web/app/[locale]/contact/__tests__/page-renderer-migration.test.tsx +5 -6
- package/templates/apps/web/app/[locale]/contact/page.tsx +25 -7
- package/templates/apps/web/app/[locale]/courses/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/downloads/__tests__/page-renderer-migration.test.tsx +3 -4
- package/templates/apps/web/app/[locale]/events/__tests__/page-renderer-migration.test.tsx +4 -5
- package/templates/apps/web/app/[locale]/glossary/page.tsx +50 -0
- package/templates/apps/web/app/[locale]/how-to/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/how-to/page.tsx +25 -15
- package/templates/apps/web/app/[locale]/integrations/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/layout.tsx +113 -51
- package/templates/apps/web/app/[locale]/newsletter/page.tsx +50 -0
- package/templates/apps/web/app/[locale]/partners/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/products/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/projects/__tests__/page-renderer-migration.test.tsx +4 -5
- package/templates/apps/web/app/[locale]/{shipping → purchase-policy}/page.tsx +15 -10
- package/templates/apps/web/app/[locale]/resources/__tests__/page-renderer-migration.test.tsx +4 -5
- package/templates/apps/web/app/[locale]/services/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/software/[slug]/page.tsx +14 -1
- package/templates/apps/web/app/[locale]/software/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/software/page.tsx +25 -15
- package/templates/apps/web/app/[locale]/tech-articles/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/tech-articles/page.tsx +25 -15
- package/templates/apps/web/app/[locale]/testimonials/__tests__/page-renderer-migration.test.tsx +3 -4
- package/templates/apps/web/app/[locale]/use-cases/[slug]/page.tsx +48 -0
- package/templates/apps/web/app/[locale]/use-cases/__tests__/page-renderer-migration.test.tsx +3 -4
- package/templates/apps/web/app/[locale]/use-cases/page.tsx +15 -2
- package/templates/apps/web/app/[locale]/whitepapers/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/whitepapers/page.tsx +25 -15
- package/templates/apps/web/app/error-fallback.tsx +17 -45
- package/templates/apps/web/app/not-found.tsx +14 -38
- package/templates/apps/web/app/og/route.tsx +6 -0
- package/templates/apps/web/eslint.config.mjs +3 -0
- package/templates/apps/web/instrumentation.ts +14 -0
- package/templates/apps/web/lib/__tests__/site-theme.test.ts +135 -20
- package/templates/apps/web/lib/__tests__/structured-data.test.tsx +38 -0
- package/templates/apps/web/lib/license-key-store.ts +52 -0
- package/templates/apps/web/lib/nav-config.ts +64 -12
- package/templates/apps/web/lib/prisma-for-auth.ts +9 -6
- package/templates/apps/web/lib/site-brand.tsx +4 -8
- package/templates/apps/web/lib/site-chrome.ts +3 -3
- package/templates/apps/web/lib/site-identity.ts +134 -0
- package/templates/apps/web/lib/site-theme.ts +11 -0
- package/templates/apps/web/messages/en.json +52 -37
- package/templates/apps/web/middleware.ts +1 -1
- package/templates/apps/web/public/android-chrome-192x192.png +0 -0
- package/templates/apps/web/public/android-chrome-512x512.png +0 -0
- package/templates/apps/web/public/apple-touch-icon.png +0 -0
- package/templates/apps/web/public/favicon-16x16.png +0 -0
- package/templates/apps/web/public/favicon-32x32.png +0 -0
- package/templates/apps/web/public/favicon.ico +0 -0
- package/templates/apps/web/public/favicon.svg +3 -3
- package/templates/apps/web/public/logomark.svg +6 -3
- package/templates/apps/web/public/logos/ai-launch-kit-light.svg +4 -0
- package/templates/apps/web/public/logos/ai-launch-kit.svg +4 -0
- package/templates/apps/web/public/logos/atomic-agent-light.svg +4 -0
- package/templates/apps/web/public/logos/atomic-agent.svg +4 -0
- package/templates/apps/web/public/logos/salessmyth-light.svg +4 -0
- package/templates/apps/web/public/logos/salessmyth.svg +4 -0
- package/templates/apps/web/public/site.webmanifest +4 -4
- package/templates/apps/web/public/wordmark-light.svg +4 -0
- package/templates/apps/web/public/wordmark.svg +3 -3
- package/templates/apps/web/security-headers.config.ts +5 -1
- package/templates/apps/web/src/lib/commerce-sections.ts +35 -3
- package/templates/content/_site.mdx +41 -3
- package/templates/content/en/AboutPage/about.mdx +150 -144
- package/templates/content/en/BlogList/blog.mdx +105 -0
- package/templates/content/en/ContactPage/contact.mdx +44 -85
- package/templates/content/en/FAQPage/faq.mdx +86 -57
- package/templates/content/en/HomePage/home.mdx +276 -217
- package/templates/content/en/PurchasePolicyPage/purchase-policy.mdx +182 -0
- package/templates/content/en/SoftwareProduct/product.mdx +175 -0
- package/templates/content/en/UseCasesList/use-cases.mdx +170 -0
- package/templates/database/CHANGELOG.md +14 -0
- package/templates/database/package.json +3 -2
- package/templates/package.json +3 -1
- package/templates/tools/lint-architecture.ts +315 -0
- package/templates/tools/tsconfig.json +14 -0
- package/versions.json +33 -33
- package/templates/.claude/skills/add-schema/SKILL.md +0 -277
- package/templates/.claude/skills/add-schema/references/conflict-handling.md +0 -200
- package/templates/.claude/skills/add-schema/references/file-finding.md +0 -123
- package/templates/.claude/skills/add-schema/references/schema-types.md +0 -234
- package/templates/.claude/skills/scaffold-page/references/page-types.md +0 -169
- package/templates/.claude/skills/suggest-site-pages/SKILL.md +0 -242
- package/templates/.claude/skills/suggest-site-pages/references/categories.md +0 -287
- package/templates/apps/web/app/[locale]/cancellation/page.tsx +0 -44
- package/templates/apps/web/app/[locale]/returns/page.tsx +0 -44
- package/templates/apps/web/public/logo-dark.svg +0 -21
- package/templates/apps/web/public/logo-light.svg +0 -21
- package/templates/content/en/CancellationPolicyPage/cancellation.mdx +0 -108
- package/templates/content/en/LandingPage/blog.mdx +0 -83
- package/templates/content/en/LandingPage/features.mdx +0 -103
- package/templates/content/en/LandingPage/how-it-works.mdx +0 -143
- package/templates/content/en/ReturnsPolicyPage/returns.mdx +0 -108
- package/templates/content/en/ShippingPolicyPage/shipping.mdx +0 -108
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
# Site-page categories — v1 corpus
|
|
2
|
-
|
|
3
|
-
The 10 business categories `suggest-site-pages` knows about, with the
|
|
4
|
-
ordered page list and primary schema.org type for each page. Schemas
|
|
5
|
-
are drawn from the 60 page types `@working-theory/schema` builds; nothing in
|
|
6
|
-
this file should reference a type the package can't generate.
|
|
7
|
-
|
|
8
|
-
## How to read this file
|
|
9
|
-
|
|
10
|
-
Each category section has:
|
|
11
|
-
|
|
12
|
-
1. **Name and description** — what the category covers.
|
|
13
|
-
2. **Entity tag** — `organization`, `person`, or `both`. Drives whether
|
|
14
|
-
`suggest-site-pages` asks the Person-vs-Organization disambiguation
|
|
15
|
-
question.
|
|
16
|
-
3. **Page list** — ordered. The slug is what `scaffold-page` will use.
|
|
17
|
-
4. **Primary schema per page** — the `Schema.orgType` to emit.
|
|
18
|
-
|
|
19
|
-
When the entity tag is `both`, some pages (typically home, about,
|
|
20
|
-
contact) carry an identity that flips between `Organization` and
|
|
21
|
-
`Person` based on the consumer's answer. The page's _own_ schema type
|
|
22
|
-
(`HomePage`, `AboutPage`, `ContactPage`) does not change; only the
|
|
23
|
-
identity attached inside the JSON-LD does.
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## SaaS
|
|
28
|
-
|
|
29
|
-
Software-as-a-service products — anything where the value prop is
|
|
30
|
-
"sign up and use the software." Includes vertical SaaS, horizontal
|
|
31
|
-
tools, dev platforms, and self-serve B2B.
|
|
32
|
-
|
|
33
|
-
- **Entity tag:** `organization`
|
|
34
|
-
- **Pages:**
|
|
35
|
-
|
|
36
|
-
| Slug | Schema.orgType | Purpose |
|
|
37
|
-
| ---------- | -------------- | -------------------------------------------------- |
|
|
38
|
-
| `home` | `HomePage` | top-of-funnel landing with the headline value prop |
|
|
39
|
-
| `about` | `AboutPage` | company story and team |
|
|
40
|
-
| `pricing` | `Product` | public price tiers and feature comparison |
|
|
41
|
-
| `features` | `ServicesList` | what the product does, broken into capabilities |
|
|
42
|
-
| `contact` | `ContactPage` | sales and support entry point |
|
|
43
|
-
| `privacy` | `PrivacyPage` | privacy policy |
|
|
44
|
-
| `terms` | `TermsPage` | terms of service |
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## E-commerce
|
|
49
|
-
|
|
50
|
-
Direct-to-consumer or B2B storefronts selling physical or digital
|
|
51
|
-
goods. The catalog is the primary surface; everything else supports it.
|
|
52
|
-
|
|
53
|
-
- **Entity tag:** `organization`
|
|
54
|
-
- **Pages:**
|
|
55
|
-
|
|
56
|
-
| Slug | Schema.orgType | Purpose |
|
|
57
|
-
| --------- | -------------- | ------------------------------------------- |
|
|
58
|
-
| `home` | `HomePage` | featured products and category entry points |
|
|
59
|
-
| `shop` | `ProductsList` | the full catalog |
|
|
60
|
-
| `about` | `AboutPage` | brand story and what the company makes |
|
|
61
|
-
| `contact` | `ContactPage` | customer-service entry point |
|
|
62
|
-
| `faq` | `FAQPage` | shipping, returns, sizing, common questions |
|
|
63
|
-
| `privacy` | `PrivacyPage` | privacy policy |
|
|
64
|
-
| `terms` | `TermsPage` | terms of service |
|
|
65
|
-
|
|
66
|
-
Per-product pages use `Product` and live under `shop/<product-slug>`.
|
|
67
|
-
`scaffold-page` handles them one at a time once the user has the
|
|
68
|
-
catalog page.
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## Service business
|
|
73
|
-
|
|
74
|
-
Restaurant, salon, contractor, gym, plumber, cleaner — anyone whose
|
|
75
|
-
business is "show up and do the work." Owner is usually an entity
|
|
76
|
-
(LLC / corp), occasionally a sole proprietor.
|
|
77
|
-
|
|
78
|
-
- **Entity tag:** `both`
|
|
79
|
-
- **Pages:**
|
|
80
|
-
|
|
81
|
-
| Slug | Schema.orgType | Purpose |
|
|
82
|
-
| -------------- | ------------------ | --------------------------------------------------- |
|
|
83
|
-
| `home` | `HomePage` | what the business does, where, and how to book |
|
|
84
|
-
| `services` | `ServicesList` | menu of services offered |
|
|
85
|
-
| `about` | `AboutPage` | the operator's story and credentials |
|
|
86
|
-
| `contact` | `ContactPage` | hours, address, booking link |
|
|
87
|
-
| `testimonials` | `TestimonialsList` | customer reviews and quotes |
|
|
88
|
-
| `faq` | `FAQPage` | common questions about service, pricing, scheduling |
|
|
89
|
-
| `privacy` | `PrivacyPage` | privacy policy |
|
|
90
|
-
| `terms` | `TermsPage` | terms of service |
|
|
91
|
-
|
|
92
|
-
Individual services go under `services/<service-slug>` with `Service`
|
|
93
|
-
as the type. The home/about/contact pages anchor on `Organization` for
|
|
94
|
-
a business entity, `Person` for a sole proprietor.
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
## Professional services
|
|
99
|
-
|
|
100
|
-
Law firms, accounting firms, consulting shops, marketing agencies — fee-for-engagement
|
|
101
|
-
expertise. Almost always firm-shaped at scale, but plenty of solo practitioners.
|
|
102
|
-
|
|
103
|
-
- **Entity tag:** `both`
|
|
104
|
-
- **Pages:**
|
|
105
|
-
|
|
106
|
-
| Slug | Schema.orgType | Purpose |
|
|
107
|
-
| -------------- | ----------------- | ------------------------------------------------- |
|
|
108
|
-
| `home` | `HomePage` | who the firm serves and what kinds of engagements |
|
|
109
|
-
| `services` | `ServicesList` | practice areas or service lines |
|
|
110
|
-
| `team` | `TeamList` | the people clients will work with |
|
|
111
|
-
| `case-studies` | `CaseStudiesList` | engagement outcomes and references |
|
|
112
|
-
| `about` | `AboutPage` | firm history, philosophy, credentials |
|
|
113
|
-
| `contact` | `ContactPage` | how to reach out about an engagement |
|
|
114
|
-
| `blog` | `BlogList` | thought leadership and updates |
|
|
115
|
-
| `privacy` | `PrivacyPage` | privacy policy |
|
|
116
|
-
| `terms` | `TermsPage` | terms of service |
|
|
117
|
-
|
|
118
|
-
For solo practitioners, drop the `team` page and anchor home/about/contact
|
|
119
|
-
on `Person` instead of `Organization`.
|
|
120
|
-
|
|
121
|
-
---
|
|
122
|
-
|
|
123
|
-
## Marketplace
|
|
124
|
-
|
|
125
|
-
Two-sided platforms — buyers on one side, sellers/providers on the
|
|
126
|
-
other. Always organizational; an individual cannot be a marketplace.
|
|
127
|
-
|
|
128
|
-
- **Entity tag:** `organization`
|
|
129
|
-
- **Pages:**
|
|
130
|
-
|
|
131
|
-
| Slug | Schema.orgType | Purpose |
|
|
132
|
-
| ------------- | -------------- | ------------------------------------------------ |
|
|
133
|
-
| `home` | `HomePage` | the value prop for both sides of the marketplace |
|
|
134
|
-
| `for-buyers` | `ServicesList` | what buyers get and how it works |
|
|
135
|
-
| `for-sellers` | `ServicesList` | what sellers get and how to onboard |
|
|
136
|
-
| `browse` | `ProductsList` | the searchable catalog of listings |
|
|
137
|
-
| `about` | `AboutPage` | who runs the platform and why |
|
|
138
|
-
| `contact` | `ContactPage` | support entry point |
|
|
139
|
-
| `faq` | `FAQPage` | trust, payments, dispute resolution |
|
|
140
|
-
| `privacy` | `PrivacyPage` | privacy policy |
|
|
141
|
-
| `terms` | `TermsPage` | terms of service |
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## Content / Blog
|
|
146
|
-
|
|
147
|
-
Publications, personal blogs, newsletters with a website. The
|
|
148
|
-
defining feature: posts are the primary surface, not products or
|
|
149
|
-
services.
|
|
150
|
-
|
|
151
|
-
- **Entity tag:** `both`
|
|
152
|
-
- **Pages:**
|
|
153
|
-
|
|
154
|
-
| Slug | Schema.orgType | Purpose |
|
|
155
|
-
| --------- | -------------- | ----------------------------------------- |
|
|
156
|
-
| `home` | `HomePage` | recent and featured posts |
|
|
157
|
-
| `blog` | `BlogList` | the full archive |
|
|
158
|
-
| `about` | `AboutPage` | who writes and why |
|
|
159
|
-
| `contact` | `ContactPage` | how to reach the author or editorial team |
|
|
160
|
-
| `privacy` | `PrivacyPage` | privacy policy |
|
|
161
|
-
| `terms` | `TermsPage` | terms of service |
|
|
162
|
-
|
|
163
|
-
Individual posts use `BlogPosting`. A "personal" blog (one writer,
|
|
164
|
-
their name on the site) is `Person`; an editorial publication with a
|
|
165
|
-
masthead is `Organization`. Phrases like "personal" or "my" in the
|
|
166
|
-
description settle it as Person without asking.
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
## Course / Education
|
|
171
|
-
|
|
172
|
-
Course providers, schools, online academies, individual instructors
|
|
173
|
-
selling courses. Core surface is the course catalog.
|
|
174
|
-
|
|
175
|
-
- **Entity tag:** `both`
|
|
176
|
-
- **Pages:**
|
|
177
|
-
|
|
178
|
-
| Slug | Schema.orgType | Purpose |
|
|
179
|
-
| -------------- | ------------------ | ------------------------------------------------ |
|
|
180
|
-
| `home` | `HomePage` | who the courses are for and the headline outcome |
|
|
181
|
-
| `courses` | `CoursesList` | catalog of available courses |
|
|
182
|
-
| `about` | `AboutPage` | instructor or institution story |
|
|
183
|
-
| `testimonials` | `TestimonialsList` | student outcomes and quotes |
|
|
184
|
-
| `contact` | `ContactPage` | enrollment and support |
|
|
185
|
-
| `faq` | `FAQPage` | format, prerequisites, certification |
|
|
186
|
-
| `privacy` | `PrivacyPage` | privacy policy |
|
|
187
|
-
| `terms` | `TermsPage` | terms of service |
|
|
188
|
-
|
|
189
|
-
Individual courses use `Course`. A solo instructor anchors on `Person`;
|
|
190
|
-
a school anchors on `Organization`.
|
|
191
|
-
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
## Real estate
|
|
195
|
-
|
|
196
|
-
Brokerages, individual agents, property-management firms. The
|
|
197
|
-
disambiguation matters here: a solo agent's site looks different from
|
|
198
|
-
a brokerage's.
|
|
199
|
-
|
|
200
|
-
- **Entity tag:** `both`
|
|
201
|
-
- **Pages:**
|
|
202
|
-
|
|
203
|
-
| Slug | Schema.orgType | Purpose |
|
|
204
|
-
| -------------- | ------------------ | ------------------------------------------------------- |
|
|
205
|
-
| `home` | `HomePage` | what kinds of properties and which markets |
|
|
206
|
-
| `listings` | `ProductsList` | available properties (treat each property as a Product) |
|
|
207
|
-
| `services` | `ServicesList` | buyer / seller / rental representation |
|
|
208
|
-
| `about` | `AboutPage` | the agent's or brokerage's story and credentials |
|
|
209
|
-
| `team` | `TeamList` | the agents at the brokerage (skip for solo agents) |
|
|
210
|
-
| `testimonials` | `TestimonialsList` | client reviews |
|
|
211
|
-
| `contact` | `ContactPage` | how to reach out about a property |
|
|
212
|
-
| `privacy` | `PrivacyPage` | privacy policy |
|
|
213
|
-
| `terms` | `TermsPage` | terms of service |
|
|
214
|
-
|
|
215
|
-
Words like "brokerage", "team", "our agents" → `Organization`. "Solo
|
|
216
|
-
agent", "I represent" → `Person`. Drop the `team` page for solo
|
|
217
|
-
agents.
|
|
218
|
-
|
|
219
|
-
---
|
|
220
|
-
|
|
221
|
-
## Healthcare / Medical
|
|
222
|
-
|
|
223
|
-
Clinics, solo practitioners, group practices, dental offices,
|
|
224
|
-
therapists, specialty practices. Privacy and credibility are
|
|
225
|
-
load-bearing here.
|
|
226
|
-
|
|
227
|
-
- **Entity tag:** `both`
|
|
228
|
-
- **Pages:**
|
|
229
|
-
|
|
230
|
-
| Slug | Schema.orgType | Purpose |
|
|
231
|
-
| ---------- | -------------- | ------------------------------------------------------ |
|
|
232
|
-
| `home` | `HomePage` | what care is offered and for whom |
|
|
233
|
-
| `services` | `ServicesList` | conditions treated and procedures offered |
|
|
234
|
-
| `team` | `TeamList` | the providers (skip for solo practitioners) |
|
|
235
|
-
| `about` | `AboutPage` | practice philosophy, credentials, affiliations |
|
|
236
|
-
| `faq` | `FAQPage` | insurance, scheduling, what to expect |
|
|
237
|
-
| `contact` | `ContactPage` | hours, address, intake form link |
|
|
238
|
-
| `privacy` | `PrivacyPage` | privacy policy (HIPAA-relevant; flag this to the user) |
|
|
239
|
-
| `terms` | `TermsPage` | terms of service |
|
|
240
|
-
|
|
241
|
-
Solo practitioner → `Person`; clinic or group practice → `Organization`.
|
|
242
|
-
Drop `team` for solo practitioners.
|
|
243
|
-
|
|
244
|
-
When emitting the privacy line, mention HIPAA: "Healthcare sites need
|
|
245
|
-
a HIPAA-aware privacy policy. The default `PrivacyPage` is a starting
|
|
246
|
-
point, not a finished policy."
|
|
247
|
-
|
|
248
|
-
---
|
|
249
|
-
|
|
250
|
-
## Nonprofit / Org
|
|
251
|
-
|
|
252
|
-
Nonprofits, advocacy groups, professional associations, foundations.
|
|
253
|
-
Always organizational by nature; even a one-person foundation
|
|
254
|
-
operates as an entity.
|
|
255
|
-
|
|
256
|
-
- **Entity tag:** `organization`
|
|
257
|
-
- **Pages:**
|
|
258
|
-
|
|
259
|
-
| Slug | Schema.orgType | Purpose |
|
|
260
|
-
| ---------- | -------------- | ------------------------------------------------------------- |
|
|
261
|
-
| `home` | `HomePage` | mission and what the org does this year |
|
|
262
|
-
| `programs` | `ServicesList` | programs the org runs |
|
|
263
|
-
| `about` | `AboutPage` | history, mission, governance |
|
|
264
|
-
| `team` | `TeamList` | staff and board |
|
|
265
|
-
| `partners` | `PartnersList` | funders, partners, supporting organizations |
|
|
266
|
-
| `events` | `EventsList` | upcoming events and campaigns |
|
|
267
|
-
| `donate` | `Service` | donation entry point (treat the act of donating as a Service) |
|
|
268
|
-
| `contact` | `ContactPage` | how to reach the org |
|
|
269
|
-
| `privacy` | `PrivacyPage` | privacy policy |
|
|
270
|
-
| `terms` | `TermsPage` | terms of service |
|
|
271
|
-
|
|
272
|
-
---
|
|
273
|
-
|
|
274
|
-
## Schema-builder coverage
|
|
275
|
-
|
|
276
|
-
Every `Schema.orgType` referenced above is a member of the
|
|
277
|
-
`SchemaOrgType` union exported by `@working-theory/schema` and has a builder
|
|
278
|
-
function. The v1 catalog uses 21 of the 60 supported types:
|
|
279
|
-
|
|
280
|
-
`HomePage`, `AboutPage`, `ContactPage`, `PrivacyPage`, `TermsPage`,
|
|
281
|
-
`Organization`, `Person`, `ServicesList`, `Service`, `ProductsList`,
|
|
282
|
-
`Product`, `FAQPage`, `TestimonialsList`, `TeamList`, `PartnersList`,
|
|
283
|
-
`EventsList`, `CoursesList`, `Course`, `BlogList`, `BlogPosting`,
|
|
284
|
-
`CaseStudiesList`.
|
|
285
|
-
|
|
286
|
-
The remaining 39 types are available to `scaffold-page` and `add-schema`
|
|
287
|
-
for per-page use but don't drive category recommendations.
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// CancellationPolicyPage route (#5947). Reads the CancellationPolicyPage MDX frontmatter, renders sections via
|
|
2
|
-
// SectionRenderer, and emits a JSON-LD <script>.
|
|
3
|
-
import type {
|
|
4
|
-
getMdxSource as defaultGetMdxSource,
|
|
5
|
-
getPageSections as defaultGetPageSections} from "@working-theory/page-renderer";
|
|
6
|
-
import {
|
|
7
|
-
renderPage,
|
|
8
|
-
renderPageMetadata
|
|
9
|
-
} from "@working-theory/page-renderer";
|
|
10
|
-
import type { Metadata } from "next";
|
|
11
|
-
import type { ReactElement } from "react";
|
|
12
|
-
|
|
13
|
-
interface Props {
|
|
14
|
-
params: Promise<{ locale: string }>;
|
|
15
|
-
getMdxSource?: typeof defaultGetMdxSource;
|
|
16
|
-
getPageSections?: typeof defaultGetPageSections;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export async function generateMetadata({
|
|
20
|
-
params,
|
|
21
|
-
}: Pick<Props, "params">): Promise<Metadata> {
|
|
22
|
-
const { locale } = await params;
|
|
23
|
-
return renderPageMetadata({ type: "CancellationPolicyPage", slug: "cancellation", locale });
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export default async function Page({
|
|
27
|
-
params,
|
|
28
|
-
getMdxSource,
|
|
29
|
-
getPageSections,
|
|
30
|
-
}: Props): Promise<ReactElement> {
|
|
31
|
-
const { locale } = await params;
|
|
32
|
-
return renderPage({
|
|
33
|
-
type: "CancellationPolicyPage",
|
|
34
|
-
slug: "cancellation",
|
|
35
|
-
locale,
|
|
36
|
-
// Without a namespace `renderPage` 404s on a missing seed — and a scaffold
|
|
37
|
-
// IS a missing-seed environment, since `build-templates.mjs` snapshots
|
|
38
|
-
// `apps/` but deliberately not `content/`. The namespace makes this route
|
|
39
|
-
// render the #4154 authoring empty state at 200, exactly as /terms does.
|
|
40
|
-
translationsNamespace: "cancellation",
|
|
41
|
-
...(getMdxSource !== undefined && { getMdxSource }),
|
|
42
|
-
...(getPageSections !== undefined && { getPageSections }),
|
|
43
|
-
});
|
|
44
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// ReturnsPolicyPage route (#5947). Reads the ReturnsPolicyPage MDX frontmatter, renders sections via
|
|
2
|
-
// SectionRenderer, and emits a JSON-LD <script>.
|
|
3
|
-
import type {
|
|
4
|
-
getMdxSource as defaultGetMdxSource,
|
|
5
|
-
getPageSections as defaultGetPageSections} from "@working-theory/page-renderer";
|
|
6
|
-
import {
|
|
7
|
-
renderPage,
|
|
8
|
-
renderPageMetadata
|
|
9
|
-
} from "@working-theory/page-renderer";
|
|
10
|
-
import type { Metadata } from "next";
|
|
11
|
-
import type { ReactElement } from "react";
|
|
12
|
-
|
|
13
|
-
interface Props {
|
|
14
|
-
params: Promise<{ locale: string }>;
|
|
15
|
-
getMdxSource?: typeof defaultGetMdxSource;
|
|
16
|
-
getPageSections?: typeof defaultGetPageSections;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export async function generateMetadata({
|
|
20
|
-
params,
|
|
21
|
-
}: Pick<Props, "params">): Promise<Metadata> {
|
|
22
|
-
const { locale } = await params;
|
|
23
|
-
return renderPageMetadata({ type: "ReturnsPolicyPage", slug: "returns", locale });
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export default async function Page({
|
|
27
|
-
params,
|
|
28
|
-
getMdxSource,
|
|
29
|
-
getPageSections,
|
|
30
|
-
}: Props): Promise<ReactElement> {
|
|
31
|
-
const { locale } = await params;
|
|
32
|
-
return renderPage({
|
|
33
|
-
type: "ReturnsPolicyPage",
|
|
34
|
-
slug: "returns",
|
|
35
|
-
locale,
|
|
36
|
-
// Without a namespace `renderPage` 404s on a missing seed — and a scaffold
|
|
37
|
-
// IS a missing-seed environment, since `build-templates.mjs` snapshots
|
|
38
|
-
// `apps/` but deliberately not `content/`. The namespace makes this route
|
|
39
|
-
// render the #4154 authoring empty state at 200, exactly as /terms does.
|
|
40
|
-
translationsNamespace: "returns",
|
|
41
|
-
...(getMdxSource !== undefined && { getMdxSource }),
|
|
42
|
-
...(getPageSections !== undefined && { getPageSections }),
|
|
43
|
-
});
|
|
44
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<svg width="2030" height="280" viewBox="0 0 2030 280" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path d="M9.93994 193.411C9.93994 193.411 67.0399 108.811 165.59 103.851C165.59 103.851 237.49 96.2805 236.48 174.231C236.48 174.231 236.48 235.261 183 262.271C133.55 287.251 92.1799 254.451 93.1899 210.551C94.1299 169.681 120.33 113.551 236.49 29.1605L226.14 14.9505L278.11 9.06055L258.94 58.1705L248.68 44.5505C248.68 44.5505 140.71 115.021 122.96 184.311C122.96 184.311 109.08 240.321 150.2 241.601C192.49 242.921 226.9 171.701 195.03 138.481C167.97 110.281 88.7199 126.351 21.6099 202.791L9.93994 193.391V193.411Z" fill="white"/>
|
|
3
|
-
<path d="M637.61 160.87C637.63 154.62 636.59 148.15 635.13 142.13C632.94 133.15 628.62 125.05 622.74 118.38C614.7 109.27 603.75 102.84 591.32 100.6C586.99 99.8205 582.24 99.3305 577.13 99.2305C572.02 99.3405 567.27 99.8205 562.93 100.6C550.5 102.84 539.55 109.26 531.51 118.38C525.63 125.05 521.3 133.16 519.12 142.13C517.65 148.15 516.62 154.62 516.64 160.87C516.64 162.11 516.69 163.35 516.78 164.59C517.73 177.68 523.18 189.49 531.57 198.63V198.66C532.43 199.83 536.29 204.3 543.67 208.68C550.94 213.23 559.29 216.27 568.23 217.33C569.21 217.45 570.62 217.55 572.14 217.63C573.8 217.72 575.47 217.74 577.14 217.72C578.8 217.74 580.47 217.72 582.13 217.63C583.65 217.55 585.06 217.45 586.04 217.33C594.98 216.28 603.32 213.24 610.6 208.68C617.98 204.3 621.84 199.83 622.71 198.66V198.63C631.09 189.49 636.53 177.68 637.48 164.59C637.57 163.35 637.62 162.11 637.62 160.87H637.61ZM575.36 206.24C566.13 205.88 557.29 199.8 553.69 196.26C551.02 193.63 548.42 189.82 546.2 185.23C539.48 171.3 536.35 150.06 545.84 131.91C547.64 128.47 549.89 125.13 552.66 121.98C557.44 116.54 566.12 111.25 575.35 110.9C575.68 110.89 576 110.9 576.33 110.9C576.59 110.9 576.85 110.9 577.11 110.9C577.37 110.9 577.63 110.9 577.89 110.9C578.22 110.9 578.54 110.89 578.87 110.9C588.1 111.26 596.78 116.55 601.56 121.98C604.33 125.13 606.58 128.46 608.38 131.91C617.87 150.06 614.74 171.29 608.02 185.23C605.81 189.82 603.2 193.63 600.53 196.26C596.94 199.8 588.09 205.88 578.86 206.24C578.53 206.25 575.67 206.25 575.34 206.24H575.36Z" fill="white"/>
|
|
4
|
-
<path d="M505.68 85.8203L505.53 85.8403H505.68V85.8203Z" fill="white"/>
|
|
5
|
-
<path d="M327.62 85.8105V85.8405H327.8L327.62 85.8105Z" fill="white"/>
|
|
6
|
-
<path d="M505.53 85.8398L494.94 87.3498L484.07 85.8398H484.05C484.05 85.8398 484.05 86.7899 483.89 88.7999C483.4 94.9599 481.42 111.05 473.33 140L455.99 201.17L429.11 85.8398H405.93L376.12 201.17L349.99 87.4198L349.63 85.8699L338.96 87.3498L327.79 85.8398H327.61L331.06 100.44L358.78 217.72H385.47L414.69 112.33L439.82 217.72H465.15L501.18 100.44L505.67 85.8398H505.53Z" fill="white"/>
|
|
7
|
-
<path d="M728.22 217.349L745.98 217.719L713.14 163.199C721.26 161.599 728.25 158.669 732.61 154.419C738.84 148.309 741.96 140.699 741.96 131.589C741.96 124.799 740.21 118.819 736.71 113.629C733.21 108.449 728.59 104.749 722.85 102.529C717.11 100.309 705.58 99.1992 694.56 99.1992H666.3V217.719H685.27V164.649H696.54L728.23 217.339L728.22 217.349ZM685.59 104.789H694.4C703.1 104.789 710.22 105.479 715.76 110.699C721.3 115.909 724.08 123.039 724.08 132.079C724.08 141.119 721.31 148.169 715.76 153.419C710.21 158.669 703.24 159.619 694.83 159.619H685.59V104.789Z" fill="white"/>
|
|
8
|
-
<path d="M820.6 142.339L856.1 99.9395H848.7L796.87 161.859V99.9494L785.92 101.539L774.66 99.9395V217.729H796.87V170.949L805.62 160.349L837.25 217.729H862.83L820.6 142.339Z" fill="white"/>
|
|
9
|
-
<path d="M902.32 100.75L891.52 99.25V104.85V217.73H912.98V104.85V99.25L902.32 100.75Z" fill="white"/>
|
|
10
|
-
<path d="M1039.33 100.59L1028.57 99.1003V104.69V187.73H1027.53L971.68 99.0703H952.44V217.73H973.94V129.55H974.92L1030.83 217.73H1049.95V104.69V99.1003L1039.33 100.59Z" fill="white"/>
|
|
11
|
-
<path d="M1195.3 158.031H1129.76V166.471H1175.76C1169.26 217.871 1110.97 219.621 1102.73 168.571C1099.6 152.161 1103.17 134.121 1114.51 121.491C1129.92 103.751 1157.79 107.831 1165.58 131.511C1168.67 131.481 1176.64 131.411 1179.82 131.391L1184.91 117.861C1164.6 94.3305 1123.71 92.2005 1099.67 111.651C1074.53 132.211 1070.62 174.681 1093.29 198.491V198.511C1121.22 227.991 1169.39 221.981 1186.42 191.221C1191.17 182.641 1195.48 171.141 1195.3 158.031Z" fill="white"/>
|
|
12
|
-
<path d="M1749.04 160.98C1749.06 154.74 1748.02 148.27 1746.56 142.26C1744.38 133.29 1740.06 125.2 1734.18 118.54C1726.15 109.44 1715.21 103.02 1702.8 100.79C1698.47 100.01 1693.73 99.5199 1688.62 99.4199C1683.51 99.5299 1678.77 100.01 1674.44 100.79C1662.03 103.03 1651.09 109.44 1643.06 118.54C1637.18 125.2 1632.86 133.3 1630.68 142.26C1629.22 148.27 1628.18 154.74 1628.2 160.98C1628.2 162.22 1628.25 163.46 1628.34 164.69C1629.29 177.77 1634.73 189.56 1643.11 198.69V198.72C1643.97 199.89 1647.83 204.36 1655.2 208.73C1662.46 213.28 1670.8 216.31 1679.73 217.37C1680.71 217.49 1682.12 217.59 1683.64 217.67C1685.3 217.76 1686.97 217.78 1688.63 217.76C1690.29 217.78 1691.96 217.76 1693.62 217.67C1695.14 217.59 1696.55 217.49 1697.53 217.37C1706.46 216.32 1714.79 213.28 1722.06 208.73C1729.43 204.35 1733.29 199.89 1734.16 198.72V198.69C1742.53 189.56 1747.97 177.77 1748.92 164.69C1749.01 163.45 1749.06 162.21 1749.06 160.98H1749.04ZM1686.87 206.29C1677.65 205.93 1668.82 199.86 1665.23 196.32C1662.56 193.69 1659.96 189.89 1657.75 185.3C1651.04 171.38 1647.92 150.17 1657.39 132.04C1659.19 128.6 1661.44 125.27 1664.21 122.13C1668.98 116.7 1677.66 111.42 1686.87 111.06C1687.2 111.05 1687.52 111.06 1687.85 111.06C1688.11 111.06 1688.37 111.06 1688.63 111.06C1688.89 111.06 1689.15 111.06 1689.41 111.06C1689.74 111.06 1690.06 111.05 1690.39 111.06C1699.61 111.42 1708.28 116.7 1713.05 122.13C1715.82 125.28 1718.07 128.6 1719.87 132.04C1729.35 150.17 1726.22 171.38 1719.51 185.3C1717.3 189.89 1714.7 193.69 1712.03 196.32C1708.44 199.86 1699.6 205.93 1690.39 206.29C1690.06 206.3 1687.2 206.3 1686.87 206.29Z" fill="white"/>
|
|
13
|
-
<path d="M1611.56 107.62L1611.46 99.25L1544.77 99.43V217.59L1611.46 217.77V209.14L1564.58 211.2L1564.62 158.2L1601.82 158.64V151.84L1564.81 152.98L1564.88 106.32L1611.56 107.62Z" fill="white"/>
|
|
14
|
-
<path d="M1962.37 100.82L1962.22 100.79C1962.22 100.79 1958.47 99.99 1953.46 99.34C1953.22 99.31 1953.03 99.28 1952.86 99.25L1924.61 152.5L1893.92 99.59C1892.11 99.69 1886.03 100.06 1881.61 100.72L1881.49 100.74H1881.38C1881.31 100.72 1874.59 99.93 1868.44 99.69L1911.28 165.9L1911.22 217.76H1931.48L1931.53 166.7L1972.21 99.85C1970.08 100.01 1966.24 100.32 1962.51 100.8L1962.36 100.82H1962.37Z" fill="white"/>
|
|
15
|
-
<path d="M1308.42 217.77H1330.5V92.3595L1373.65 96.9095L1373.68 85.5195H1265.24L1265.21 96.7495L1308.42 92.3695V217.77Z" fill="white"/>
|
|
16
|
-
<path d="M1488.06 98.8398L1487.98 149.98L1453.07 152.05L1419.34 149.68L1419.42 99.1398L1409.2 100.73L1398.68 99.1298V217.77L1408.32 217.66L1419.42 217.77L1419.49 157.59L1453.21 157.19L1487.84 157.59L1488.06 217.48L1498.28 217.38L1508.81 217.48V98.8398L1498.59 100.44L1488.06 98.8398Z" fill="white"/>
|
|
17
|
-
<path d="M1838.64 217.401L1856.38 217.771L1823.58 163.311C1831.69 161.711 1838.67 158.791 1843.03 154.541C1849.26 148.431 1852.37 140.831 1852.37 131.741C1852.37 124.961 1850.62 118.981 1847.13 113.801C1843.64 108.631 1839.02 104.931 1833.28 102.711C1827.54 100.491 1816.03 99.3809 1805.03 99.3809H1776.8V217.761H1795.75V164.761H1807.01L1838.66 217.391L1838.64 217.401ZM1796.06 104.961H1804.86C1813.55 104.961 1820.66 105.651 1826.2 110.861C1831.74 116.071 1834.51 123.191 1834.51 132.221C1834.51 141.251 1831.74 148.291 1826.2 153.531C1820.66 158.771 1813.69 159.731 1805.29 159.731H1796.06V104.961Z" fill="white"/>
|
|
18
|
-
<path d="M2000.62 112V113.89H1997.43V122.66H1995.19V113.89H1991.99V112H2000.63H2000.62Z" fill="white"/>
|
|
19
|
-
<path d="M2009 112H2012.21V122.66H2010.13V115.45C2010.13 115.24 2010.13 114.95 2010.13 114.58C2010.13 114.21 2010.13 113.92 2010.13 113.72L2008.11 122.67H2005.95L2003.94 113.72C2003.94 113.92 2003.94 114.21 2003.94 114.58C2003.94 114.95 2003.94 115.24 2003.94 115.45V122.66H2001.86V112H2005.1L2007.04 120.38L2008.97 112H2009Z" fill="white"/>
|
|
20
|
-
<path d="M2002.09 134.78C1992.18 134.78 1984.12 126.72 1984.12 116.81C1984.12 106.9 1992.18 98.8398 2002.09 98.8398C2012 98.8398 2020.06 106.9 2020.06 116.81C2020.06 126.72 2012 134.78 2002.09 134.78ZM2002.09 102.93C1994.44 102.93 1988.22 109.15 1988.22 116.81C1988.22 124.47 1994.44 130.69 2002.09 130.69C2009.74 130.69 2015.97 124.47 2015.97 116.81C2015.97 109.15 2009.75 102.93 2002.09 102.93Z" fill="white"/>
|
|
21
|
-
</svg>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<svg width="2030" height="280" viewBox="0 0 2030 280" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path d="M9.93994 193.411C9.93994 193.411 67.0399 108.811 165.59 103.851C165.59 103.851 237.49 96.2805 236.48 174.231C236.48 174.231 236.48 235.261 183 262.271C133.55 287.251 92.1799 254.451 93.1899 210.551C94.1299 169.681 120.33 113.551 236.49 29.1605L226.14 14.9505L278.11 9.06055L258.94 58.1705L248.68 44.5505C248.68 44.5505 140.71 115.021 122.96 184.311C122.96 184.311 109.08 240.321 150.2 241.601C192.49 242.921 226.9 171.701 195.03 138.481C167.97 110.281 88.7199 126.351 21.6099 202.791L9.93994 193.391V193.411Z" fill="black"/>
|
|
3
|
-
<path d="M637.61 160.87C637.63 154.62 636.59 148.15 635.13 142.13C632.94 133.15 628.62 125.05 622.74 118.38C614.7 109.27 603.75 102.84 591.32 100.6C586.99 99.8205 582.24 99.3305 577.13 99.2305C572.02 99.3405 567.27 99.8205 562.93 100.6C550.5 102.84 539.55 109.26 531.51 118.38C525.63 125.05 521.3 133.16 519.12 142.13C517.65 148.15 516.62 154.62 516.64 160.87C516.64 162.11 516.69 163.35 516.78 164.59C517.73 177.68 523.18 189.49 531.57 198.63V198.66C532.43 199.83 536.29 204.3 543.67 208.68C550.94 213.23 559.29 216.27 568.23 217.33C569.21 217.45 570.62 217.55 572.14 217.63C573.8 217.72 575.47 217.74 577.14 217.72C578.8 217.74 580.47 217.72 582.13 217.63C583.65 217.55 585.06 217.45 586.04 217.33C594.98 216.28 603.32 213.24 610.6 208.68C617.98 204.3 621.84 199.83 622.71 198.66V198.63C631.09 189.49 636.53 177.68 637.48 164.59C637.57 163.35 637.62 162.11 637.62 160.87H637.61ZM575.36 206.24C566.13 205.88 557.29 199.8 553.69 196.26C551.02 193.63 548.42 189.82 546.2 185.23C539.48 171.3 536.35 150.06 545.84 131.91C547.64 128.47 549.89 125.13 552.66 121.98C557.44 116.54 566.12 111.25 575.35 110.9C575.68 110.89 576 110.9 576.33 110.9C576.59 110.9 576.85 110.9 577.11 110.9C577.37 110.9 577.63 110.9 577.89 110.9C578.22 110.9 578.54 110.89 578.87 110.9C588.1 111.26 596.78 116.55 601.56 121.98C604.33 125.13 606.58 128.46 608.38 131.91C617.87 150.06 614.74 171.29 608.02 185.23C605.81 189.82 603.2 193.63 600.53 196.26C596.94 199.8 588.09 205.88 578.86 206.24C578.53 206.25 575.67 206.25 575.34 206.24H575.36Z" fill="black"/>
|
|
4
|
-
<path d="M505.68 85.8203L505.53 85.8403H505.68V85.8203Z" fill="black"/>
|
|
5
|
-
<path d="M327.62 85.8105V85.8405H327.8L327.62 85.8105Z" fill="black"/>
|
|
6
|
-
<path d="M505.53 85.8398L494.94 87.3498L484.07 85.8398H484.05C484.05 85.8398 484.05 86.7899 483.89 88.7999C483.4 94.9599 481.42 111.05 473.33 140L455.99 201.17L429.11 85.8398H405.93L376.12 201.17L349.99 87.4198L349.63 85.8699L338.96 87.3498L327.79 85.8398H327.61L331.06 100.44L358.78 217.72H385.47L414.69 112.33L439.82 217.72H465.15L501.18 100.44L505.67 85.8398H505.53Z" fill="black"/>
|
|
7
|
-
<path d="M728.22 217.349L745.98 217.719L713.14 163.199C721.26 161.599 728.25 158.669 732.61 154.419C738.84 148.309 741.96 140.699 741.96 131.589C741.96 124.799 740.21 118.819 736.71 113.629C733.21 108.449 728.59 104.749 722.85 102.529C717.11 100.309 705.58 99.1992 694.56 99.1992H666.3V217.719H685.27V164.649H696.54L728.23 217.339L728.22 217.349ZM685.59 104.789H694.4C703.1 104.789 710.22 105.479 715.76 110.699C721.3 115.909 724.08 123.039 724.08 132.079C724.08 141.119 721.31 148.169 715.76 153.419C710.21 158.669 703.24 159.619 694.83 159.619H685.59V104.789Z" fill="black"/>
|
|
8
|
-
<path d="M820.6 142.339L856.1 99.9395H848.7L796.87 161.859V99.9494L785.92 101.539L774.66 99.9395V217.729H796.87V170.949L805.62 160.349L837.25 217.729H862.83L820.6 142.339Z" fill="black"/>
|
|
9
|
-
<path d="M902.32 100.75L891.52 99.25V104.85V217.73H912.98V104.85V99.25L902.32 100.75Z" fill="black"/>
|
|
10
|
-
<path d="M1039.33 100.59L1028.57 99.1003V104.69V187.73H1027.53L971.68 99.0703H952.44V217.73H973.94V129.55H974.92L1030.83 217.73H1049.95V104.69V99.1003L1039.33 100.59Z" fill="black"/>
|
|
11
|
-
<path d="M1195.3 158.031H1129.76V166.471H1175.76C1169.26 217.871 1110.97 219.621 1102.73 168.571C1099.6 152.161 1103.17 134.121 1114.51 121.491C1129.92 103.751 1157.79 107.831 1165.58 131.511C1168.67 131.481 1176.64 131.411 1179.82 131.391L1184.91 117.861C1164.6 94.3305 1123.71 92.2005 1099.67 111.651C1074.53 132.211 1070.62 174.681 1093.29 198.491V198.511C1121.22 227.991 1169.39 221.981 1186.42 191.221C1191.17 182.641 1195.48 171.141 1195.3 158.031Z" fill="black"/>
|
|
12
|
-
<path d="M1749.04 160.98C1749.06 154.74 1748.02 148.27 1746.56 142.26C1744.38 133.29 1740.06 125.2 1734.18 118.54C1726.15 109.44 1715.21 103.02 1702.8 100.79C1698.47 100.01 1693.73 99.5199 1688.62 99.4199C1683.51 99.5299 1678.77 100.01 1674.44 100.79C1662.03 103.03 1651.09 109.44 1643.06 118.54C1637.18 125.2 1632.86 133.3 1630.68 142.26C1629.22 148.27 1628.18 154.74 1628.2 160.98C1628.2 162.22 1628.25 163.46 1628.34 164.69C1629.29 177.77 1634.73 189.56 1643.11 198.69V198.72C1643.97 199.89 1647.83 204.36 1655.2 208.73C1662.46 213.28 1670.8 216.31 1679.73 217.37C1680.71 217.49 1682.12 217.59 1683.64 217.67C1685.3 217.76 1686.97 217.78 1688.63 217.76C1690.29 217.78 1691.96 217.76 1693.62 217.67C1695.14 217.59 1696.55 217.49 1697.53 217.37C1706.46 216.32 1714.79 213.28 1722.06 208.73C1729.43 204.35 1733.29 199.89 1734.16 198.72V198.69C1742.53 189.56 1747.97 177.77 1748.92 164.69C1749.01 163.45 1749.06 162.21 1749.06 160.98H1749.04ZM1686.87 206.29C1677.65 205.93 1668.82 199.86 1665.23 196.32C1662.56 193.69 1659.96 189.89 1657.75 185.3C1651.04 171.38 1647.92 150.17 1657.39 132.04C1659.19 128.6 1661.44 125.27 1664.21 122.13C1668.98 116.7 1677.66 111.42 1686.87 111.06C1687.2 111.05 1687.52 111.06 1687.85 111.06C1688.11 111.06 1688.37 111.06 1688.63 111.06C1688.89 111.06 1689.15 111.06 1689.41 111.06C1689.74 111.06 1690.06 111.05 1690.39 111.06C1699.61 111.42 1708.28 116.7 1713.05 122.13C1715.82 125.28 1718.07 128.6 1719.87 132.04C1729.35 150.17 1726.22 171.38 1719.51 185.3C1717.3 189.89 1714.7 193.69 1712.03 196.32C1708.44 199.86 1699.6 205.93 1690.39 206.29C1690.06 206.3 1687.2 206.3 1686.87 206.29Z" fill="black"/>
|
|
13
|
-
<path d="M1611.56 107.62L1611.46 99.25L1544.77 99.43V217.59L1611.46 217.77V209.14L1564.58 211.2L1564.62 158.2L1601.82 158.64V151.84L1564.81 152.98L1564.88 106.32L1611.56 107.62Z" fill="black"/>
|
|
14
|
-
<path d="M1962.37 100.82L1962.22 100.79C1962.22 100.79 1958.47 99.99 1953.46 99.34C1953.22 99.31 1953.03 99.28 1952.86 99.25L1924.61 152.5L1893.92 99.59C1892.11 99.69 1886.03 100.06 1881.61 100.72L1881.49 100.74H1881.38C1881.31 100.72 1874.59 99.93 1868.44 99.69L1911.28 165.9L1911.22 217.76H1931.48L1931.53 166.7L1972.21 99.85C1970.08 100.01 1966.24 100.32 1962.51 100.8L1962.36 100.82H1962.37Z" fill="black"/>
|
|
15
|
-
<path d="M1308.42 217.77H1330.5V92.3595L1373.65 96.9095L1373.68 85.5195H1265.24L1265.21 96.7495L1308.42 92.3695V217.77Z" fill="black"/>
|
|
16
|
-
<path d="M1488.06 98.8398L1487.98 149.98L1453.07 152.05L1419.34 149.68L1419.42 99.1398L1409.2 100.73L1398.68 99.1298V217.77L1408.32 217.66L1419.42 217.77L1419.49 157.59L1453.21 157.19L1487.84 157.59L1488.06 217.48L1498.28 217.38L1508.81 217.48V98.8398L1498.59 100.44L1488.06 98.8398Z" fill="black"/>
|
|
17
|
-
<path d="M1838.64 217.401L1856.38 217.771L1823.58 163.311C1831.69 161.711 1838.67 158.791 1843.03 154.541C1849.26 148.431 1852.37 140.831 1852.37 131.741C1852.37 124.961 1850.62 118.981 1847.13 113.801C1843.64 108.631 1839.02 104.931 1833.28 102.711C1827.54 100.491 1816.03 99.3809 1805.03 99.3809H1776.8V217.761H1795.75V164.761H1807.01L1838.66 217.391L1838.64 217.401ZM1796.06 104.961H1804.86C1813.55 104.961 1820.66 105.651 1826.2 110.861C1831.74 116.071 1834.51 123.191 1834.51 132.221C1834.51 141.251 1831.74 148.291 1826.2 153.531C1820.66 158.771 1813.69 159.731 1805.29 159.731H1796.06V104.961Z" fill="black"/>
|
|
18
|
-
<path d="M2000.62 112V113.89H1997.43V122.66H1995.19V113.89H1991.99V112H2000.63H2000.62Z" fill="black"/>
|
|
19
|
-
<path d="M2009 112H2012.21V122.66H2010.13V115.45C2010.13 115.24 2010.13 114.95 2010.13 114.58C2010.13 114.21 2010.13 113.92 2010.13 113.72L2008.11 122.67H2005.95L2003.94 113.72C2003.94 113.92 2003.94 114.21 2003.94 114.58C2003.94 114.95 2003.94 115.24 2003.94 115.45V122.66H2001.86V112H2005.1L2007.04 120.38L2008.97 112H2009Z" fill="black"/>
|
|
20
|
-
<path d="M2002.09 134.78C1992.18 134.78 1984.12 126.72 1984.12 116.81C1984.12 106.9 1992.18 98.8398 2002.09 98.8398C2012 98.8398 2020.06 106.9 2020.06 116.81C2020.06 126.72 2012 134.78 2002.09 134.78ZM2002.09 102.93C1994.44 102.93 1988.22 109.15 1988.22 116.81C1988.22 124.47 1994.44 130.69 2002.09 130.69C2009.74 130.69 2015.97 124.47 2015.97 116.81C2015.97 109.15 2009.75 102.93 2002.09 102.93Z" fill="black"/>
|
|
21
|
-
</svg>
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "CancellationPolicyPage"
|
|
3
|
-
slug: "cancellation"
|
|
4
|
-
title: "Cancellation Policy"
|
|
5
|
-
description: "How to cancel or reschedule a booking on this site, the notice required, and what a late cancellation or no-show costs."
|
|
6
|
-
updatedAt: "2026-09-17"
|
|
7
|
-
sections:
|
|
8
|
-
[
|
|
9
|
-
{
|
|
10
|
-
"id": "cancellation-document",
|
|
11
|
-
"type": "document-chassis",
|
|
12
|
-
"data":
|
|
13
|
-
{
|
|
14
|
-
"headline": "Cancellation Policy",
|
|
15
|
-
"backHref": "/",
|
|
16
|
-
"backLabel": "Back home",
|
|
17
|
-
"navGroupLabel": "Contents",
|
|
18
|
-
"stats":
|
|
19
|
-
[
|
|
20
|
-
{ "label": "Last updated", "sublabel": "17 September 2026" },
|
|
21
|
-
{ "label": "Applies to", "sublabel": "Bookings made on this site" },
|
|
22
|
-
],
|
|
23
|
-
"sections":
|
|
24
|
-
[
|
|
25
|
-
{
|
|
26
|
-
"id": "intro",
|
|
27
|
-
"heading": "Cancellation Policy",
|
|
28
|
-
"blocks":
|
|
29
|
-
[
|
|
30
|
-
{
|
|
31
|
-
"kind": "paragraph",
|
|
32
|
-
"text": "This page explains how cancellations and reschedules work for bookings made on this site. Replace the starter copy below with the policy you actually operate — the headings are the ones a customer and an agent both look for, so keep them and fill in your own terms.",
|
|
33
|
-
},
|
|
34
|
-
],
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
"id": "notice",
|
|
38
|
-
"heading": "How much notice is required",
|
|
39
|
-
"blocks":
|
|
40
|
-
[
|
|
41
|
-
{
|
|
42
|
-
"kind": "paragraph",
|
|
43
|
-
"text": "State the notice period in hours before the appointment, and say how it is measured. A customer reading at midnight should be able to work out, without arithmetic you have not shown them, whether they are still inside it.",
|
|
44
|
-
},
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
"id": "how-to-cancel",
|
|
49
|
-
"heading": "How to cancel or reschedule",
|
|
50
|
-
"blocks":
|
|
51
|
-
[
|
|
52
|
-
{
|
|
53
|
-
"kind": "paragraph",
|
|
54
|
-
"text": "Give one route to cancel and one to reschedule, and say whether a reschedule inside the notice period counts as a cancellation. If a booking confirmation carries a self-service link, name it here.",
|
|
55
|
-
},
|
|
56
|
-
],
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
"id": "fees",
|
|
60
|
-
"heading": "Late cancellations and no-shows",
|
|
61
|
-
"blocks":
|
|
62
|
-
[
|
|
63
|
-
{
|
|
64
|
-
"kind": "paragraph",
|
|
65
|
-
"text": "Say what a late cancellation costs and what a no-show costs, as a figure or a share of the booking, and when each is charged. If you hold a deposit, say what happens to it in each case.",
|
|
66
|
-
},
|
|
67
|
-
],
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
"id": "our-cancellations",
|
|
71
|
-
"heading": "If we cancel",
|
|
72
|
-
"blocks":
|
|
73
|
-
[
|
|
74
|
-
{
|
|
75
|
-
"kind": "paragraph",
|
|
76
|
-
"text": "Set out what a customer gets if you cancel or move an appointment — a full refund, a rebooking, or both — and how quickly you tell them. A policy that only binds one side reads as one.",
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"id": "exceptions",
|
|
82
|
-
"heading": "Exceptions",
|
|
83
|
-
"blocks":
|
|
84
|
-
[
|
|
85
|
-
{
|
|
86
|
-
"kind": "paragraph",
|
|
87
|
-
"text": "Name the circumstances in which you waive a fee — illness, bereavement, severe weather — and say what you need from the customer to apply the waiver. Vague discretion is worse for you than a short written list.",
|
|
88
|
-
},
|
|
89
|
-
],
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
"id": "contact",
|
|
93
|
-
"heading": "Questions about a booking",
|
|
94
|
-
"blocks":
|
|
95
|
-
[
|
|
96
|
-
{
|
|
97
|
-
"kind": "paragraph",
|
|
98
|
-
"text": "Point to the one place a customer should write, and say roughly how quickly you answer.",
|
|
99
|
-
},
|
|
100
|
-
],
|
|
101
|
-
},
|
|
102
|
-
],
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
]
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
{/* Rendered from frontmatter `sections[]`; the MDX body is not read by the section-catalog renderer. schema.org has no cancellation-policy type, so this page emits a plain WebPage (#5947, D2) — a real policy field reaches the JSON-LD through the `schema:` escape hatch, never a coined @type. */}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "LandingPage"
|
|
3
|
-
slug: "blog"
|
|
4
|
-
title: "Resources for {customer profile}"
|
|
5
|
-
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
|
|
6
|
-
sections:
|
|
7
|
-
[
|
|
8
|
-
{
|
|
9
|
-
"id": "hero",
|
|
10
|
-
"type": "hero",
|
|
11
|
-
"data":
|
|
12
|
-
{
|
|
13
|
-
"variant": "centered",
|
|
14
|
-
"eyebrow": "Blog",
|
|
15
|
-
"headline": "Resources for {customer profile}",
|
|
16
|
-
"subheadline": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"id": "pro-blog",
|
|
21
|
-
"type": "cta",
|
|
22
|
-
"data":
|
|
23
|
-
{
|
|
24
|
-
"headline": "The blog listing ships with the Pro docs-blog module",
|
|
25
|
-
"description": "This Free site carries one static resources page. The Pro docs-blog module adds the full blog — MDX posts, the paginated listing and the documentation surface — at this same /blog route; install it and this page is replaced by the real listing.",
|
|
26
|
-
"primaryCta": { "label": "See Pro pricing", "href": "/pricing" },
|
|
27
|
-
"secondaryCta":
|
|
28
|
-
{ "label": "Talk to us", "href": "/contact", "variant": "outline" },
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"id": "newsletter",
|
|
33
|
-
"type": "newsletter",
|
|
34
|
-
"data":
|
|
35
|
-
{
|
|
36
|
-
"headline": "Stay Up to Date with our {fequency} Newsletter",
|
|
37
|
-
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
|
|
38
|
-
"placeholder": "Enter your email",
|
|
39
|
-
"submitLabel": "Sign Up",
|
|
40
|
-
"consentText": "By clicking Sign Up you're confirming that you agree with our Terms and Conditions",
|
|
41
|
-
"successMessage": "Thank you! Your submission has been received!",
|
|
42
|
-
"action": "/v1/leads/subscribe",
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"id": "logo-cloud",
|
|
47
|
-
"type": "logoCloud",
|
|
48
|
-
"data":
|
|
49
|
-
{
|
|
50
|
-
"headline": "Don’t just take our word for it",
|
|
51
|
-
"logos":
|
|
52
|
-
[
|
|
53
|
-
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
54
|
-
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
55
|
-
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
56
|
-
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
57
|
-
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
58
|
-
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
59
|
-
],
|
|
60
|
-
"layout": "inline",
|
|
61
|
-
"treatment": "monochrome",
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"id": "testimonial",
|
|
66
|
-
"type": "testimonials",
|
|
67
|
-
"data":
|
|
68
|
-
{
|
|
69
|
-
"variant": "featured",
|
|
70
|
-
"items":
|
|
71
|
-
[
|
|
72
|
-
{
|
|
73
|
-
"quote": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
|
|
74
|
-
"author": "John Smith",
|
|
75
|
-
"role": "CEO, Google",
|
|
76
|
-
},
|
|
77
|
-
],
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
]
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
{/* The Free blog teaser (one static page, rendered by the generic `[slug]` route). With the Pro docs-blog module installed its own `blog/` route directory takes precedence and this file is inert. Placeholder copy — replace before you launch. */}
|