diff --git a/.gitignore b/.gitignore index a869b54..4c2549f 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ apps/docs/.blume/ apps/docs/.blume-verify/ apps/docs/dist/ apps/docs/public/opengraph-image.png -apps/docs/public/social/ +apps/docs/public/og/ artifacts/ src/TheBuilder.WebAnalytics/wwwroot/App_Plugins/ **/umbraco/Data/ diff --git a/apps/docs/blume.config.ts b/apps/docs/blume.config.ts index 3009e2f..4eac210 100644 --- a/apps/docs/blume.config.ts +++ b/apps/docs/blume.config.ts @@ -40,6 +40,11 @@ export default defineConfig({ output: "static", site: "https://web-analytics.thebuilder.dk", }, + seo: { + // Package-owned cards are generated into public/og before Blume builds. + // Disable Blume's generated /og routes so it cannot overwrite them. + og: { enabled: false }, + }, analytics: { vercel: true, }, diff --git a/apps/docs/docs/guides/document-analytics.mdx b/apps/docs/docs/guides/document-analytics.mdx index 0e0dcd0..4439ca2 100644 --- a/apps/docs/docs/guides/document-analytics.mdx +++ b/apps/docs/docs/guides/document-analytics.mdx @@ -2,7 +2,7 @@ title: Document analytics description: Map document roots and types to show reports automatically filtered to the selected published route. Document reports do not require global Analytics-section access. seo: - image: /social/guides/document-analytics.png + image: /og/guides/document-analytics.png --- Document mappings are optional. A connection without a mapping remains available in the global Analytics section but does not add a document workspace report. Document reports do not require global Analytics-section access. diff --git a/apps/docs/docs/guides/reports.mdx b/apps/docs/docs/guides/reports.mdx index bc99f84..f9900cd 100644 --- a/apps/docs/docs/guides/reports.mdx +++ b/apps/docs/docs/guides/reports.mdx @@ -2,7 +2,7 @@ title: Understanding your reports description: What each metric, breakdown, control, and drill-down in the Analytics dashboard means, and how date comparison and filtering work together. seo: - image: /social/guides/reports.png + image: /og/guides/reports.png --- The Analytics section presents one dashboard per connection. This page explains what every part of it shows so you can move from a headline number to the context behind it. It describes the reading experience; for setup see the [quickstart](/quickstart), and for page-level reports see [document analytics](/guides/document-analytics). diff --git a/apps/docs/docs/overview.mdx b/apps/docs/docs/overview.mdx index b34ee88..f733baf 100644 --- a/apps/docs/docs/overview.mdx +++ b/apps/docs/docs/overview.mdx @@ -2,7 +2,7 @@ title: Overview description: Bring the analytics your site already collects into Umbraco, giving editors useful traffic reports in the backoffice and on mapped documents. seo: - image: /social/overview.png + image: /og/overview.png sidebar: order: 0 --- diff --git a/apps/docs/docs/providers/plausible.mdx b/apps/docs/docs/providers/plausible.mdx index 342f4a9..676cd2e 100644 --- a/apps/docs/docs/providers/plausible.mdx +++ b/apps/docs/docs/providers/plausible.mdx @@ -2,7 +2,7 @@ title: Plausible description: Reference for Plausible Cloud and self-hosted connections, including fields, endpoint requirements, event properties, reports, and common errors. seo: - image: /social/providers/plausible.png + image: /og/providers/plausible.png --- The [quickstart](/quickstart) owns the first-time setup flow. Use this page to look up Plausible-specific requirements, connection fields, and capabilities. diff --git a/apps/docs/docs/providers/vercel.mdx b/apps/docs/docs/providers/vercel.mdx index 86fa735..5dfd299 100644 --- a/apps/docs/docs/providers/vercel.mdx +++ b/apps/docs/docs/providers/vercel.mdx @@ -2,7 +2,7 @@ title: Vercel Web Analytics description: Reference for Vercel Web Analytics connection fields, reports, team projects, credential overrides, and common connection errors. seo: - image: /social/providers/vercel.png + image: /og/providers/vercel.png --- The [quickstart](/quickstart) owns the first-time setup flow. Use this page to look up Vercel-specific requirements, connection fields, and capabilities. diff --git a/apps/docs/docs/quickstart.mdx b/apps/docs/docs/quickstart.mdx index 46e6799..44ab5d9 100644 --- a/apps/docs/docs/quickstart.mdx +++ b/apps/docs/docs/quickstart.mdx @@ -2,7 +2,7 @@ title: Quickstart description: Install Web Analytics, configure a Vercel or Plausible credential, create and test a connection, then verify the Umbraco Analytics dashboard. seo: - image: /social/quickstart.png + image: /og/quickstart.png --- This is the complete first-time setup path for Web Analytics. Stay on this page from package installation to a working dashboard. diff --git a/apps/docs/docs/reference/configuration.mdx b/apps/docs/docs/reference/configuration.mdx index bdfbf97..915c86b 100644 --- a/apps/docs/docs/reference/configuration.mdx +++ b/apps/docs/docs/reference/configuration.mdx @@ -2,7 +2,7 @@ title: Configuration reference description: Before the first Settings save, server configuration supplies non-secret values; afterward, Umbraco settings take precedence. seo: - image: /social/reference/configuration.png + image: /og/reference/configuration.png --- ## Configuration lifecycle and precedence diff --git a/apps/docs/docs/reference/troubleshooting.mdx b/apps/docs/docs/reference/troubleshooting.mdx index d3d3a74..0c51284 100644 --- a/apps/docs/docs/reference/troubleshooting.mdx +++ b/apps/docs/docs/reference/troubleshooting.mdx @@ -2,7 +2,7 @@ title: Troubleshooting description: Resolve missing access, provider credential failures, empty reports, and stale multi-instance settings. seo: - image: /social/reference/troubleshooting.png + image: /og/reference/troubleshooting.png --- ## Connection and data diff --git a/apps/docs/package.json b/apps/docs/package.json index 53261b8..ceb8f5d 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -14,7 +14,7 @@ "check:og": "umbraco-docs-og --check" }, "devDependencies": { - "@thebuilder/umbraco-docs": "^1.0.2", + "@thebuilder/umbraco-docs": "^1.0.3", "@types/node": "24.10.1", "blume": "1.4.3", "sharp": "0.34.5" diff --git a/apps/docs/pages/index.astro b/apps/docs/pages/index.astro index 18dea14..6f57966 100644 --- a/apps/docs/pages/index.astro +++ b/apps/docs/pages/index.astro @@ -104,7 +104,7 @@ const steps = [ searchEnabled={config.search.enabled} siteUrl={config.site} ogEnabled={config.og.enabled} - ogImage="/social/index.png" + ogImage="/og/index.png" page={{ title: "Web Analytics for Umbraco", description: diff --git a/apps/docs/umbraco-docs.config.mjs b/apps/docs/umbraco-docs.config.mjs index 7197a78..ecc84a9 100644 --- a/apps/docs/umbraco-docs.config.mjs +++ b/apps/docs/umbraco-docs.config.mjs @@ -4,9 +4,10 @@ import { fileURLToPath } from "node:url"; export default defineOgConfig({ contentDir: fileURLToPath(new URL("./docs", import.meta.url)), publicDir: fileURLToPath(new URL("./public", import.meta.url)), - prefix: "/social", + prefix: "/og", brand: "TheBuilder ยท Web Analytics", accent: "#3544b1", + logo: "/logo.png", root: { title: "Web Analytics", description: "Bring Vercel Web Analytics and Plausible reports into the Umbraco backoffice.", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3cf87e2..0b54a24 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,8 +11,8 @@ importers: apps/docs: devDependencies: '@thebuilder/umbraco-docs': - specifier: ^1.0.2 - version: 1.0.2(@types/node@24.10.1)(blume@1.4.3(@astrojs/markdown-remark@7.2.2)(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)(@shikijs/themes@4.4.3)(@types/node@24.10.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(@vercel/functions@3.9.1(ws@8.21.1))(csstype@3.2.3)(esbuild@0.28.2)(prettier@3.9.6)(rollup@4.62.3)(vite@8.2.1(@types/node@24.10.1)(esbuild@0.28.2)(jiti@2.7.0)(yaml@2.9.0))(ws@8.21.1)(yaml@2.9.0)) + specifier: ^1.0.3 + version: 1.0.3(@types/node@24.10.1)(blume@1.4.3(@astrojs/markdown-remark@7.2.2)(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)(@shikijs/themes@4.4.3)(@types/node@24.10.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(@vercel/functions@3.9.1(ws@8.21.1))(csstype@3.2.3)(esbuild@0.28.2)(prettier@3.9.6)(rollup@4.62.3)(vite@8.2.1(@types/node@24.10.1)(esbuild@0.28.2)(jiti@2.7.0)(yaml@2.9.0))(ws@8.21.1)(yaml@2.9.0)) '@types/node': specifier: 24.10.1 version: 24.10.1 @@ -1840,8 +1840,8 @@ packages: csstype: optional: true - '@thebuilder/umbraco-docs@1.0.2': - resolution: {integrity: sha512-vUcXscayMba333FVhj78Xc1loaRRwKzPPqeBPpcx8wj18ZPXmYyXwbjE7OTaZ6qxrkYjWKHqT0wHjfg1Oj61Yg==} + '@thebuilder/umbraco-docs@1.0.3': + resolution: {integrity: sha512-XhelpubEHFMlgL0CxNkrGnOkDM9giIUmAaK4w2jnVZAOMpzvnjX3QEDS3oF0jmtbbGvRXzMsZDnJsnUDWslSVQ==} engines: {node: '>=22.12'} hasBin: true peerDependencies: @@ -7297,7 +7297,7 @@ snapshots: - preact - react - '@thebuilder/umbraco-docs@1.0.2(@types/node@24.10.1)(blume@1.4.3(@astrojs/markdown-remark@7.2.2)(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)(@shikijs/themes@4.4.3)(@types/node@24.10.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(@vercel/functions@3.9.1(ws@8.21.1))(csstype@3.2.3)(esbuild@0.28.2)(prettier@3.9.6)(rollup@4.62.3)(vite@8.2.1(@types/node@24.10.1)(esbuild@0.28.2)(jiti@2.7.0)(yaml@2.9.0))(ws@8.21.1)(yaml@2.9.0))': + '@thebuilder/umbraco-docs@1.0.3(@types/node@24.10.1)(blume@1.4.3(@astrojs/markdown-remark@7.2.2)(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)(@shikijs/themes@4.4.3)(@types/node@24.10.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(@vercel/functions@3.9.1(ws@8.21.1))(csstype@3.2.3)(esbuild@0.28.2)(prettier@3.9.6)(rollup@4.62.3)(vite@8.2.1(@types/node@24.10.1)(esbuild@0.28.2)(jiti@2.7.0)(yaml@2.9.0))(ws@8.21.1)(yaml@2.9.0))': dependencies: blume: 1.4.3(@astrojs/markdown-remark@7.2.2)(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)(@shikijs/themes@4.4.3)(@types/node@24.10.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(@vercel/functions@3.9.1(ws@8.21.1))(csstype@3.2.3)(esbuild@0.28.2)(prettier@3.9.6)(rollup@4.62.3)(vite@8.2.1(@types/node@24.10.1)(esbuild@0.28.2)(jiti@2.7.0)(yaml@2.9.0))(ws@8.21.1)(yaml@2.9.0) gray-matter: 4.0.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 5aaf1e7..25e7cb8 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -6,4 +6,4 @@ allowBuilds: sharp: true minimumReleaseAgeExclude: - blume@1.4.3 - - '@thebuilder/umbraco-docs@1.0.2' + - '@thebuilder/umbraco-docs@1.0.3'