Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,4 @@ samples/TheBuilder.WebAnalytics.Example/appsettings-schema.json
.idea/
.vs/
.blume-verify/
apps/docs/public/social/
6 changes: 3 additions & 3 deletions apps/docs/blume.config.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { defineConfig } from "blume";

import { githubReleaseChangelogSource } from "./sources/github-releases";
import { webAnalyticsPackage } from "./umbraco-package";

export default defineConfig({
title: "Web Analytics",
description:
"Bring Vercel Web Analytics and Plausible reports into the Umbraco backoffice.",
title: webAnalyticsPackage.name,
description: webAnalyticsPackage.summary,
logo: {
image: "/logo.png",
text: "Web Analytics",
Expand Down
9 changes: 5 additions & 4 deletions apps/docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@
"build": "pnpm run generate:og && blume build",
"check": "blume check",
"generate:brand": "node scripts/generate-brand.mjs",
"generate:og": "node scripts/generate-og-image.mjs",
"validate": "blume validate"
"validate": "blume validate",
"generate:og": "umbraco-docs-og",
"check:og": "umbraco-docs-og --check"
},
"devDependencies": {
"@thebuilder/umbraco-docs": "^1.0.2",
"@types/node": "24.10.1",
"blume": "1.2.1",
"gray-matter": "4.0.3",
"blume": "1.4.3",
"sharp": "0.34.5"
}
}
5 changes: 4 additions & 1 deletion apps/docs/pages/_home/home.css
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
.home {
/* Echoes the logo's blue -> purple -> pink for subtle gradient accents. */
--brand-gradient: linear-gradient(105deg, #60a5fa, #a78bfa 52%, #f472b6);
padding-bottom: 5rem;
overflow: clip;
}

Expand Down Expand Up @@ -249,6 +248,10 @@
.home-block__head a { color: var(--blume-accent); text-decoration: none; }
.home-block__head a:hover { text-decoration: underline; }

/* Avoid stacking the shared section's bottom margin with this custom page's
footer spacing. The component's card and heading styles remain package-owned. */
.home .udocs-ecosystem { margin-block: clamp(4rem, 9vw, 7rem) 0; }

.trust {
margin-top: clamp(3rem, 7vw, 5rem);
text-align: center;
Expand Down
21 changes: 17 additions & 4 deletions apps/docs/pages/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,20 @@
// and renders correctly; skip type-checking to avoid the false positives.
import PageLayout from "blume/components/layout/PageLayout.astro";
import data from "blume:data";
import {
EcosystemSection,
LandingRoot,
} from "@thebuilder/umbraco-docs/astro";

import "./_home/home.css";

import overviewShot from "../docs/screenshots/analytics-overview.png";
import documentShot from "../docs/screenshots/document-analytics-workspace.png";
import settingsShot from "../docs/screenshots/settings.png";
import {
ecosystemPackages,
webAnalyticsPackage,
} from "../umbraco-package";

const { config } = data;

Expand Down Expand Up @@ -96,15 +104,15 @@ const steps = [
searchEnabled={config.search.enabled}
siteUrl={config.site}
ogEnabled={config.og.enabled}
ogImage="/opengraph-image.png"
ogImage="/social/index.png"
page={{
title: "Web Analytics for Umbraco",
description:
"Bring Vercel Web Analytics and Plausible reports into the Umbraco backoffice: site-wide and page-level traffic where editors already work.",
route: "/",
}}
>
<div class="home" data-home>
<LandingRoot class="home">
{/* Hero */}
<section class="hero">
<div class="hero__glow" aria-hidden="true"></div>
Expand Down Expand Up @@ -317,7 +325,12 @@ const steps = [
</div>
</div>
</section>
</div>

<EcosystemSection
packages={ecosystemPackages}
currentPackageId={webAnalyticsPackage.id}
/>
</LandingRoot>

{/* Footer */}
<footer class="home-footer" slot="footer">
Expand All @@ -340,7 +353,7 @@ const steps = [
</PageLayout>

<script>
const root = document.querySelector<HTMLElement>("[data-home]");
const root = document.querySelector<HTMLElement>("[data-udocs-root]");
const prefersReduced = window.matchMedia("(prefers-reduced-motion: reduce)").matches;

if (root && !prefersReduced && "IntersectionObserver" in window) {
Expand Down
20 changes: 20 additions & 0 deletions apps/docs/public/ecosystem/blur-placeholder.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
131 changes: 0 additions & 131 deletions apps/docs/scripts/generate-og-image.mjs

This file was deleted.

14 changes: 14 additions & 0 deletions apps/docs/umbraco-docs.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { defineOgConfig } from "@thebuilder/umbraco-docs/og";
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",
brand: "TheBuilder · Web Analytics",
accent: "#3544b1",
root: {
title: "Web Analytics",
description: "Bring Vercel Web Analytics and Plausible reports into the Umbraco backoffice.",
},
});
35 changes: 35 additions & 0 deletions apps/docs/umbraco-package.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { defineUmbracoPackage } from "@thebuilder/umbraco-docs";

export const webAnalyticsPackage = defineUmbracoPackage({
id: "thebuilder.webanalytics",
name: "Web Analytics",
summary: "Connect analytics providers and bring site-wide and page-level insights into the Umbraco backoffice.",
links: {
docs: "https://umbraco-web-analytics.vercel.app/",
nuget: "https://www.nuget.org/packages/TheBuilder.WebAnalytics",
marketplace: "https://marketplace.umbraco.com/package/thebuilder.webanalytics",
github: "https://github.com/thebuilder/web-analytics",
},
logo: "/logo.png",
compatibility: { umbraco: ">=17.1 <19", dotnet: ">=10" },
status: "stable",
categories: ["Analytics", "Editor Tools"],
});

export const blurPlaceholderPackage = defineUmbracoPackage({
id: "thebuilder.blurplaceholder",
name: "Blur Placeholder",
summary: "Generate WebP, BlurHash, or ThumbHash placeholders for Umbraco Image media and deliver one frontend-ready string.",
links: {
docs: "https://blur-placeholder.vercel.app/",
nuget: "https://www.nuget.org/packages/TheBuilder.BlurPlaceholder",
marketplace: "https://marketplace.umbraco.com/package/thebuilder.blurplaceholder",
github: "https://github.com/thebuilder/blur-placeholder",
},
logo: "/ecosystem/blur-placeholder.svg",
compatibility: { umbraco: ">=17.1 <19", dotnet: ">=10" },
status: "stable",
categories: ["Developer Tools", "Media"],
});

export const ecosystemPackages = [webAnalyticsPackage, blurPlaceholderPackage];
Loading
Loading