<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Web site on vanityURLs Brand</title><link>https://brand.vanityurls.link/web-site/</link><description>Recent content in Web site on vanityURLs Brand</description><generator>Hugo</generator><language>en-CA</language><atom:link href="https://brand.vanityurls.link/web-site/index.xml" rel="self" type="application/rss+xml"/><item><title>Local development</title><link>https://brand.vanityurls.link/web-site/local-development/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/web-site/local-development/</guid><description>&lt;p&gt;Use this page when you are changing layouts, content, styles, search, or the small Cloudflare Worker that serves the documentation site.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Tool&lt;/th&gt;
 &lt;th&gt;Version&lt;/th&gt;
 &lt;th&gt;Why&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Hugo Extended&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;0.158.0+&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The site uses Hugo asset pipeline features that require a modern extended build&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Node.js&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;20+&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;npm scripts, Tailwind, PostCSS, Pagefind, Wrangler, and tests&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Git&lt;/td&gt;
 &lt;td&gt;Any modern version&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;enableGitInfo&lt;/code&gt; uses commit metadata for last-modified dates&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Go&lt;/td&gt;
 &lt;td&gt;Optional&lt;/td&gt;
 &lt;td&gt;Only needed if you build Hugo yourself&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;











&lt;div class="not-prose my-5 rounded-lg border border-amber-200 dark:border-amber-800 bg-amber-50 dark:bg-amber-900/20 p-4"&gt;
 &lt;div class="flex gap-3"&gt;
 &lt;svg class="w-5 h-5 text-amber-500 dark:text-amber-400 shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"&gt;
 &lt;path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/&gt;
 &lt;/svg&gt;
 &lt;div class="flex-1 min-w-0"&gt;
 &lt;p class="text-sm font-semibold text-amber-800 dark:text-amber-300 mb-1"&gt;Use Hugo Extended&lt;/p&gt;</description></item><item><title>Content authoring</title><link>https://brand.vanityurls.link/web-site/content-authoring/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/web-site/content-authoring/</guid><description>&lt;p&gt;Use this page when you add or update website content in &lt;code&gt;content/&lt;/code&gt;, &lt;code&gt;i18n/&lt;/code&gt;, &lt;code&gt;data/&lt;/code&gt;, or Hugo &lt;code&gt;layouts/&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="repository-areas"&gt;Repository areas&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Path&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;content/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Pages, blog posts, showcase entries, and documentation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;layouts/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Hugo templates, partials, and shortcodes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;assets/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Processed CSS and JavaScript that Hugo fingerprints&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;static/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Files copied as-is with stable public URLs&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;data/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Structured page data such as home, FAQ, glossary, trust, and audits&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;i18n/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;UI strings used by templates and shortcodes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="content-files"&gt;Content files&lt;/h2&gt;
&lt;p&gt;Use language-specific filenames:&lt;/p&gt;</description></item><item><title>Documentation contribution</title><link>https://brand.vanityurls.link/web-site/contributing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/web-site/contributing/</guid><description>&lt;p&gt;The main site has a short &lt;a href="https://vanityurls.link/en/contributing/"&gt;Contribution Guide&lt;/a&gt; for code, documentation, bug reports, and community help. This page adds the brand-site expectations for documentation contributors.&lt;/p&gt;
&lt;h2 id="where-to-contribute"&gt;Where to contribute&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Work&lt;/th&gt;
 &lt;th&gt;Repository&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Redirector code&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;github.com/vanityURLs/vanityURLs&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Main website docs&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;github.com/vanityURLs/website&lt;/code&gt;, under &lt;code&gt;content/&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Brand standards docs&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;github.com/vanityURLs/website&lt;/code&gt;, under &lt;code&gt;brand-content/&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Website templates&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;github.com/vanityURLs/website&lt;/code&gt;, under &lt;code&gt;layouts/&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;CSS and JavaScript&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;github.com/vanityURLs/website&lt;/code&gt;, under &lt;code&gt;assets/&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Stable public downloads&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;github.com/vanityURLs/website&lt;/code&gt;, under &lt;code&gt;static/&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="brand-documentation-rules"&gt;Brand documentation rules&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Keep pages practical and source-of-truth oriented.&lt;/li&gt;
&lt;li&gt;Base standards on existing implementation before inventing a new rule.&lt;/li&gt;
&lt;li&gt;Add English and French pages together when the section is bilingual.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;brand-content/&lt;/code&gt; for brand standards and &lt;code&gt;content/&lt;/code&gt; for the main product site.&lt;/li&gt;
&lt;li&gt;Link back to the main site when a visitor needs product documentation, legal pages, trust pages, or community entry points.&lt;/li&gt;
&lt;li&gt;Use conventional commits so release-please can classify changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="before-opening-a-pull-request"&gt;Before opening a pull request&lt;/h2&gt;
&lt;p&gt;Run:&lt;/p&gt;</description></item><item><title>Hosting and deployment</title><link>https://brand.vanityurls.link/web-site/hosting-deployment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/web-site/hosting-deployment/</guid><description>&lt;p&gt;The documentation site runs on Workers Static Assets with Cloudflare Workers. It is not a Cloudflare Pages project. One Worker serves the Hugo-generated static site and handles server-side analytics for HTML page views.&lt;/p&gt;
&lt;h2 id="architecture"&gt;Architecture&lt;/h2&gt;
&lt;div class="mermaid-wrap not-prose my-5"&gt;&lt;pre class="mermaid"&gt;flowchart LR
A[GitHub&lt;br/&gt;main branch]
B[Cloudflare GitHub&lt;br/&gt;integration]
C[build.sh]
D[Hugo build&lt;br/&gt;and Pagefind index]
E[wrangler deploy]
F[Worker&lt;br/&gt;vanityurls-website]
G[Static Assets binding&lt;br/&gt;./public]
H[Custom domain&lt;br/&gt;vanityurls.link]

A --&gt; B
B --&gt; C
C --&gt; D
D --&gt; E
E --&gt; F
F --&gt; G
F --&gt; H&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The Worker is configured so HTML requests pass through &lt;code&gt;src/worker.mjs&lt;/code&gt;; and everything else is cheap static asset traffic such as CSS, fonts, JavaScript bundles, images, Pagefind files, and sitemaps that bypass Worker code.&lt;/p&gt;</description></item><item><title>Website analytics</title><link>https://brand.vanityurls.link/web-site/analytics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/web-site/analytics/</guid><description>&lt;p&gt;The website uses Umami for visitor analytics. Events are sent server-side from the Cloudflare Worker instead of through a browser JavaScript snippet.&lt;/p&gt;
&lt;h2 id="privacy-model"&gt;Privacy model&lt;/h2&gt;
&lt;p&gt;The website analytics setup is intentionally small:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;no analytics cookies&lt;/li&gt;
&lt;li&gt;no client-side analytics script&lt;/li&gt;
&lt;li&gt;no &lt;code&gt;localStorage&lt;/code&gt; or &lt;code&gt;sessionStorage&lt;/code&gt; for tracking&lt;/li&gt;
&lt;li&gt;no browser fingerprinting&lt;/li&gt;
&lt;li&gt;no full visitor IP address sent to Umami&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Worker truncates visitor IP addresses before forwarding analytics data: IPv4 to &lt;code&gt;/24&lt;/code&gt; and IPv6 to &lt;code&gt;/48&lt;/code&gt;. That preserves coarse geography while removing household-level precision.&lt;/p&gt;</description></item><item><title>Releases</title><link>https://brand.vanityurls.link/web-site/releases/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/web-site/releases/</guid><description>&lt;p&gt;The website repository uses &lt;a href="https://github.com/googleapis/release-please"&gt;release-please&lt;/a&gt; through &lt;a href="https://github.com/vanityURLs/website/actions"&gt;GitHub Actions&lt;/a&gt;. Releases are driven by commit history and release-please metadata, not by hand-editing package versions.&lt;/p&gt;
&lt;div class="mermaid-wrap not-prose my-5"&gt;&lt;pre class="mermaid"&gt;flowchart LR
A[Conventional&lt;br/&gt;commits]
B[GitHub&lt;br/&gt;Actions]
C[release-please]
D[Release PR]
E[CHANGELOG.md]
F[package&lt;br/&gt;versions]
G[release&lt;br/&gt;manifest]
H[GitHub&lt;br/&gt;release]

A --&gt; B
B --&gt; C
C --&gt; D
D --&gt; E
D --&gt; F
D --&gt; G
D --&gt; H&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Before merging a release-facing website change:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Run &lt;code&gt;npm run build&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;npm run lint&lt;/code&gt; or the relevant narrower check.&lt;/li&gt;
&lt;li&gt;Confirm &lt;code&gt;.release-please-manifest.json&lt;/code&gt; still matches the intended current release.&lt;/li&gt;
&lt;li&gt;Avoid manual edits to generated release notes unless you are correcting release metadata.&lt;/li&gt;
&lt;/ol&gt;











&lt;div class="not-prose my-5 rounded-lg border border-blue-200 dark:border-blue-800 bg-blue-50 dark:bg-blue-900/20 p-4"&gt;
 &lt;div class="flex gap-3"&gt;
 &lt;svg class="w-5 h-5 text-blue-500 dark:text-blue-400 shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"&gt;
 &lt;path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;
 &lt;/svg&gt;
 &lt;div class="flex-1 min-w-0"&gt;
 &lt;p class="text-sm font-semibold text-blue-800 dark:text-blue-300 mb-1"&gt;Changelog handling&lt;/p&gt;</description></item></channel></rss>