<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>This is the source code of the vanityURLs brand on vanityURLs Brand</title><link>https://brand.vanityurls.link/</link><description>Recent content in This is the source code of the vanityURLs brand on vanityURLs Brand</description><generator>Hugo</generator><language>en-CA</language><atom:link href="https://brand.vanityurls.link/index.xml" rel="self" type="application/rss+xml"/><item><title>Brand &amp; assets</title><link>https://brand.vanityurls.link/resources/downloads/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/resources/downloads/</guid><description>&lt;h2 id="available-now"&gt;Available now&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Item&lt;/th&gt;
 &lt;th&gt;File&lt;/th&gt;
 &lt;th&gt;Download&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Complete logo pack&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;/resources/vanityurls-logo-pack.zip&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://brand.vanityurls.link/resources/vanityurls-logo-pack.zip" download aria-label="Download complete logo pack"&gt;
 &lt;svg aria-hidden="true" viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;path d="M12 3v12"/&gt;&lt;path d="m7 10 5 5 5-5"/&gt;&lt;path d="M5 21h14"/&gt;&lt;/svg&gt;
 &lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Instance redirected image pack&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;/resources/v8s-instance-redirected-pack.zip&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://brand.vanityurls.link/resources/v8s-instance-redirected-pack.zip" download aria-label="Download instance redirected image pack"&gt;
 &lt;svg aria-hidden="true" viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;path d="M12 3v12"/&gt;&lt;path d="m7 10 5 5 5-5"/&gt;&lt;path d="M5 21h14"/&gt;&lt;/svg&gt;
 &lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Icon pack&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;/resources/vanityurls-icon-pack.zip&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://brand.vanityurls.link/resources/vanityurls-icon-pack.zip" download aria-label="Download icon pack"&gt;
 &lt;svg aria-hidden="true" viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;path d="M12 3v12"/&gt;&lt;path d="m7 10 5 5 5-5"/&gt;&lt;path d="M5 21h14"/&gt;&lt;/svg&gt;
 &lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Main logo&lt;/td&gt;&lt;td&gt;&lt;code&gt;/logo.svg&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Slim light header logo&lt;/td&gt;&lt;td&gt;&lt;code&gt;/vanityURLs-link-logo-slim.svg&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Slim dark header logo&lt;/td&gt;&lt;td&gt;&lt;code&gt;/vanityURLs-link-logo-dark-slim.svg&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Product logo bundle&lt;/td&gt;&lt;td&gt;&lt;code&gt;/logo/product-logo/vanityurls-link-logo.svg&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Product logo dark bundle&lt;/td&gt;&lt;td&gt;&lt;code&gt;/logo/product-logo/vanityurls-link-logo-dark.svg&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Demo instance logo&lt;/td&gt;&lt;td&gt;&lt;code&gt;/logo/product-logo/v8s-logo.svg&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Website favicon reference&lt;/td&gt;&lt;td&gt;&lt;code&gt;/logo/website-logos/favicon.png&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Website social preview reference&lt;/td&gt;&lt;td&gt;&lt;code&gt;/logo/website-logos/social.png&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Instance redirected SVGs&lt;/td&gt;&lt;td&gt;&lt;code&gt;/logo/instance-logo/v8s-redirected-{language}.svg&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Instance redirected dark SVGs&lt;/td&gt;&lt;td&gt;&lt;code&gt;/logo/instance-logo/v8s-redirected-{language}-dark.svg&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Instance redirected PNGs&lt;/td&gt;&lt;td&gt;&lt;code&gt;/logo/instance-logo/v8s-redirected-{language}-1125-721.png&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Instance redirected preview PNGs&lt;/td&gt;&lt;td&gt;&lt;code&gt;/logo/instance-logo/v8s-redirected-{language}-512-328.png&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Redirected badges&lt;/td&gt;&lt;td&gt;&lt;code&gt;/images/v8s-redirected-{language}.svg&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Redirected dark badges&lt;/td&gt;&lt;td&gt;&lt;code&gt;/images/v8s-redirected-{language}-dark.svg&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="needed"&gt;Needed&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Package&lt;/th&gt;
 &lt;th&gt;Format&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Runtime badge pack&lt;/td&gt;
 &lt;td&gt;ZIP containing localized light and dark SVG badges&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Color</title><link>https://brand.vanityurls.link/design-language/color/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/design-language/color/</guid><description>&lt;ul&gt;
&lt;li&gt;Use teal as an accent, not as the whole interface.&lt;/li&gt;
&lt;li&gt;Keep status colors semantic and distinct from brand teal.&lt;/li&gt;
&lt;li&gt;Preserve badge contrast on light and dark surfaces.&lt;/li&gt;
&lt;li&gt;Pair brand accents with neutral gray, white, and dark ink surfaces so pages do not become one-note teal compositions.&lt;/li&gt;
&lt;li&gt;Test color combinations against WCAG contrast requirements before publishing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The vanityURLs palette follows the same intent as the &lt;a href="https://ux.redhat.com/foundations/color/"&gt;Red Hat color foundation&lt;/a&gt;: color is a practical system for brand expression, hierarchy, state, and accessibility. Treat the palette as a set of named decisions, not a drawer of interchangeable decoration.&lt;/p&gt;</description></item><item><title>Common sense</title><link>https://brand.vanityurls.link/foundations/common-sense/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/foundations/common-sense/</guid><description>&lt;p&gt;Brand standards should make everyday decisions easier. When a page, badge, redirect screen, or product surface does not have a specific rule, use these common-sense defaults.&lt;/p&gt;
&lt;h2 id="start-from-the-user-task"&gt;Start from the user task&lt;/h2&gt;
&lt;p&gt;Every surface should help someone do one clear thing: understand a redirect, trust a destination, copy an asset, manage an instance, or learn the system.&lt;/p&gt;
&lt;p&gt;If a visual idea makes that task slower, weaker, or less trustworthy, remove it.&lt;/p&gt;</description></item><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>Brand personality</title><link>https://brand.vanityurls.link/foundations/brand-personality/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/foundations/brand-personality/</guid><description>&lt;p&gt;The vanityURLs personality is calm, precise, useful, transparent, and quietly technical.&lt;/p&gt;
&lt;h2 id="calm"&gt;Calm&lt;/h2&gt;
&lt;p&gt;The system should reduce anxiety around redirects. Use clear states, predictable layouts, and measured language. Avoid dramatic warnings unless there is a real security or availability concern.&lt;/p&gt;
&lt;h2 id="precise"&gt;Precise&lt;/h2&gt;
&lt;p&gt;Short links are small, but mistakes can be expensive. Use exact labels for domains, aliases, targets, expiration rules, languages, and blocking behavior.&lt;/p&gt;
&lt;h2 id="useful"&gt;Useful&lt;/h2&gt;
&lt;p&gt;Every visual choice should help someone scan, compare, configure, or verify. Decoration is acceptable only when it supports recognition or comprehension.&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>Fonts and typography</title><link>https://brand.vanityurls.link/design-language/typography/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/design-language/typography/</guid><description>&lt;p&gt;The website self-hosts &lt;a href="https://rsms.me/inter/"&gt;Inter Variable&lt;/a&gt; for interface and prose text, plus &lt;a href="https://www.jetbrains.com/lp/mono/"&gt;JetBrains Mono&lt;/a&gt; for code. Font files live under &lt;code&gt;static/fonts/&lt;/code&gt; and are declared in &lt;code&gt;assets/css/main.css&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The typographic model takes inspiration from the &lt;a href="https://ux.redhat.com/foundations/typography/font-family/"&gt;Red Hat font-family foundation&lt;/a&gt;: use one family for expressive and readable text, and one monospaced family for code and technical identifiers. vanityURLs uses Inter instead of Red Hat Display/Text, but keeps the same separation between human-readable prose and technical material.&lt;/p&gt;
&lt;h2 id="typeface-samples"&gt;Typeface samples&lt;/h2&gt;
&lt;div class="brand-type-samples not-prose"&gt;
 &lt;section class="brand-type-sample"&gt;
 &lt;h3&gt;Inter Variable&lt;/h3&gt;
 &lt;p class="brand-type-specimen brand-type-inter"&gt;Aa vanityURLs&lt;/p&gt;</description></item><item><title>Instance logo and redirected images</title><link>https://brand.vanityurls.link/logo/instance-logo/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/logo/instance-logo/</guid><description>&lt;h2 id="instance-redirected-images"&gt;Instance redirected images&lt;/h2&gt;
&lt;p&gt;The instance redirected images are page-local assets for documenting how an instance communicates a localized redirect. They stay in this Hugo page bundle so they are available to the brand site without being copied into the shared &lt;code&gt;static/images/&lt;/code&gt; output used by the main site.&lt;/p&gt;
&lt;div class="brand-system"&gt;
 &lt;section class="brand-section"&gt;
 &lt;div class="brand-grid"&gt;
 &lt;div class="brand-panel"&gt;
 &lt;h3&gt;Light surface&lt;/h3&gt;
 &lt;div class="brand-badge-stage brand-badge-stage-light"&gt;
 &lt;img src="https://brand.vanityurls.link/logo/instance-logo/v8s-redirected-en.svg" alt="Redirected by vanityURLs.link image"&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="brand-panel"&gt;
 &lt;h3&gt;Dark surface&lt;/h3&gt;
 &lt;div class="brand-badge-stage brand-badge-stage-dark"&gt;
 &lt;img src="https://brand.vanityurls.link/logo/instance-logo/v8s-redirected-en-dark.svg" alt="Redirected by vanityURLs.link image for dark surfaces"&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/section&gt;
&lt;/div&gt;
&lt;h2 id="localized-redirected-files"&gt;Localized redirected files&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Language&lt;/th&gt;
 &lt;th&gt;SVG light&lt;/th&gt;
 &lt;th&gt;SVG dark&lt;/th&gt;
 &lt;th&gt;PNG light&lt;/th&gt;
 &lt;th&gt;PNG dark&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;English&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-en.svg&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-en-dark.svg&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-en-1125-721.png&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-en-dark-1125-721.png&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;French&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-fr.svg&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-fr-dark.svg&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-fr-1125-721.png&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-fr-dark-1125-721.png&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Spanish&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-es.svg&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-es-dark.svg&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-es-1125-721.png&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-es-dark-1125-721.png&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Italian&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-it.svg&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-it-dark.svg&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-it-1125-721.png&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-it-dark-1125-721.png&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;German&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-de.svg&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-de-dark.svg&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-de-1125-721.png&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-de-dark-1125-721.png&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Preview&lt;/td&gt;
 &lt;td&gt;n/a&lt;/td&gt;
 &lt;td&gt;n/a&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-{language}-512-328.png&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s-redirected-{language}-dark-512-328.png&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;All supplied SVG files use a &lt;code&gt;1125 x 721&lt;/code&gt; viewBox. The canonical PNG exports are &lt;code&gt;1125 x 721&lt;/code&gt;; preview PNG exports are &lt;code&gt;512 x 328&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Social media</title><link>https://brand.vanityurls.link/resources/social-media/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/resources/social-media/</guid><description>&lt;h2 id="current-files"&gt;Current files&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Asset&lt;/th&gt;
 &lt;th&gt;File&lt;/th&gt;
 &lt;th&gt;Size&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Social preview&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;/social.png&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Existing raster&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Open Graph default&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;/og-default.png&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Existing raster&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Open Graph profile&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;/og-profile.png&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Existing raster&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="needed"&gt;Needed&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Asset&lt;/th&gt;
 &lt;th&gt;Format&lt;/th&gt;
 &lt;th&gt;Size&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Social avatar&lt;/td&gt;
 &lt;td&gt;PNG&lt;/td&gt;
 &lt;td&gt;1024 x 1024&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Open Graph image&lt;/td&gt;
 &lt;td&gt;PNG or JPG&lt;/td&gt;
 &lt;td&gt;1200 x 630&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;GitHub/social banner&lt;/td&gt;
 &lt;td&gt;PNG or JPG&lt;/td&gt;
 &lt;td&gt;1500 x 500&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;LinkedIn banner&lt;/td&gt;
 &lt;td&gt;PNG or JPG&lt;/td&gt;
 &lt;td&gt;1584 x 396&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Square post template&lt;/td&gt;
 &lt;td&gt;PNG or editable source&lt;/td&gt;
 &lt;td&gt;1080 x 1080&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Landscape post template&lt;/td&gt;
 &lt;td&gt;PNG or editable source&lt;/td&gt;
 &lt;td&gt;1600 x 900&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&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>Voice</title><link>https://brand.vanityurls.link/foundations/voice/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/foundations/voice/</guid><description>&lt;p&gt;Use direct, operational language. The reader should feel that vanityURLs is careful with redirects, clear about system behavior, and respectful of their time.&lt;/p&gt;
&lt;h2 id="voice-qualities"&gt;Voice qualities&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Quality&lt;/th&gt;
 &lt;th&gt;Means&lt;/th&gt;
 &lt;th&gt;Avoids&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Direct&lt;/td&gt;
 &lt;td&gt;Say what the system does&lt;/td&gt;
 &lt;td&gt;Vague promises or abstract benefits&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Precise&lt;/td&gt;
 &lt;td&gt;Use exact domains, states, paths, and time&lt;/td&gt;
 &lt;td&gt;Approximate language when details matter&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Calm&lt;/td&gt;
 &lt;td&gt;Explain problems without drama&lt;/td&gt;
 &lt;td&gt;Alarmist wording for routine states&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Operational&lt;/td&gt;
 &lt;td&gt;Help the reader act or verify&lt;/td&gt;
 &lt;td&gt;Copy that sounds polished but says little&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Honest&lt;/td&gt;
 &lt;td&gt;Describe implemented behavior&lt;/td&gt;
 &lt;td&gt;Implying features or guarantees not present&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="preferred-verbs"&gt;Preferred verbs&lt;/h2&gt;
&lt;p&gt;Use concrete verbs such as &lt;code&gt;create&lt;/code&gt;, &lt;code&gt;redirect&lt;/code&gt;, &lt;code&gt;expire&lt;/code&gt;, &lt;code&gt;block&lt;/code&gt;, &lt;code&gt;audit&lt;/code&gt;, &lt;code&gt;deploy&lt;/code&gt;, &lt;code&gt;verify&lt;/code&gt;, &lt;code&gt;copy&lt;/code&gt;, &lt;code&gt;download&lt;/code&gt;, and &lt;code&gt;configure&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Grid</title><link>https://brand.vanityurls.link/design-language/grid/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/design-language/grid/</guid><description>&lt;p&gt;Use a centered content column for documentation and reference pages. Keep long-form reading surfaces narrow enough to scan comfortably.&lt;/p&gt;
&lt;p&gt;The standard documentation layout uses a left navigation, a main reading column, and an optional table of contents. Brand pages should reuse that layout unless the page is a special-purpose asset preview.&lt;/p&gt;
&lt;p&gt;The grid approach is based on the &lt;a href="https://ux.redhat.com/foundations/grid/"&gt;Red Hat grid foundation&lt;/a&gt;: a predictable structure with responsive columns, margins, gutters, and constrained line length. vanityURLs keeps the same discipline but adapts it to a compact documentation site and generated redirect pages.&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>Naming and terms</title><link>https://brand.vanityurls.link/foundations/naming-and-terms/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/foundations/naming-and-terms/</guid><description>&lt;p&gt;Use consistent names so readers can tell the product, public site, brand site, and generated redirect surfaces apart.&lt;/p&gt;
&lt;h2 id="project-and-domains"&gt;Project and domains&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Name&lt;/th&gt;
 &lt;th&gt;Use&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;vanityURLs&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The project and product name&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;vanityURLs.link&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The public documentation and product domain&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;brand.vanityURLs.link&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The brand standards and design-system domain&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;v8s.link&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Demo instance, badge examples, and compact-link examples&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Keep the lowercase &lt;code&gt;vanity&lt;/code&gt; and uppercase &lt;code&gt;URLs&lt;/code&gt; styling in prose. In URLs and hostnames, use the actual domain casing only when it helps recognition; DNS remains case-insensitive.&lt;/p&gt;</description></item><item><title>Wallpapers and backgrounds</title><link>https://brand.vanityurls.link/resources/wallpapers-backgrounds/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/resources/wallpapers-backgrounds/</guid><description>&lt;h2 id="needed"&gt;Needed&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Asset&lt;/th&gt;
 &lt;th&gt;Format&lt;/th&gt;
 &lt;th&gt;Size&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Desktop wallpaper&lt;/td&gt;
 &lt;td&gt;PNG or JPG&lt;/td&gt;
 &lt;td&gt;3840 x 2160&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Desktop wallpaper&lt;/td&gt;
 &lt;td&gt;PNG or JPG&lt;/td&gt;
 &lt;td&gt;2560 x 1440&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Mobile wallpaper&lt;/td&gt;
 &lt;td&gt;PNG or JPG&lt;/td&gt;
 &lt;td&gt;1290 x 2796&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Presentation background&lt;/td&gt;
 &lt;td&gt;PNG or JPG&lt;/td&gt;
 &lt;td&gt;1920 x 1080&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Video-call background&lt;/td&gt;
 &lt;td&gt;PNG or JPG&lt;/td&gt;
 &lt;td&gt;1920 x 1080&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Abstract texture source&lt;/td&gt;
 &lt;td&gt;SVG, PNG, or editable source&lt;/td&gt;
 &lt;td&gt;Vector or 3840 x 2160&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Use backgrounds sparingly. They should support brand recognition without reducing legibility.&lt;/p&gt;</description></item><item><title>Spacing</title><link>https://brand.vanityurls.link/design-language/spacing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/design-language/spacing/</guid><description>&lt;p&gt;Spacing should make the interface easy to scan. Use tighter spacing for operational tools and more generous spacing for page openings, brand summaries, and asset previews.&lt;/p&gt;
&lt;p&gt;The website uses fluid documentation spacing tokens in &lt;code&gt;assets/css/main.css&lt;/code&gt;, from &lt;code&gt;--docs-space-2xs&lt;/code&gt; through &lt;code&gt;--docs-space-l&lt;/code&gt;. Use those token relationships when adding new documentation components.&lt;/p&gt;
&lt;p&gt;The spacing model follows the &lt;a href="https://ux.redhat.com/foundations/spacing/"&gt;Red Hat spacing foundation&lt;/a&gt;: a small, named scale keeps rhythm consistent across components, patterns, and layouts. vanityURLs maps that idea to documentation prose, compact product UI, generated pages, and asset previews.&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>White space and text flow</title><link>https://brand.vanityurls.link/design-language/white-space-and-flow/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/design-language/white-space-and-flow/</guid><description>&lt;p&gt;White space is part of the interface, not decoration. It helps readers understand what belongs together, where a section starts, and which action is most important.&lt;/p&gt;
&lt;h2 id="prose-flow"&gt;Prose flow&lt;/h2&gt;
&lt;p&gt;The documentation uses &lt;code&gt;content-flow&lt;/code&gt; and &lt;code&gt;docs-flow&lt;/code&gt; patterns to create steady spacing between paragraphs, headings, lists, code blocks, tables, and callouts.&lt;/p&gt;
&lt;p&gt;Use that rhythm for long-form pages. Avoid manually stacking ad hoc margins unless a reusable component needs a new spacing rule.&lt;/p&gt;
&lt;h2 id="flow-pattern-rules"&gt;Flow pattern rules&lt;/h2&gt;
&lt;p&gt;Use &lt;code&gt;content-flow&lt;/code&gt; on Markdown-style content containers that need readable prose spacing. It sets the shared body size, line height, child spacing, heading rhythm, and list-item rhythm for paragraphs, lists, quotes, tables, code blocks, highlighted code, and non-prose inserts.&lt;/p&gt;</description></item><item><title>A11Y</title><link>https://brand.vanityurls.link/design-language/accessibility/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/design-language/accessibility/</guid><description>&lt;p&gt;Accessibility is part of the brand system, not an afterthought.&lt;/p&gt;
&lt;p&gt;The main website publishes an &lt;a href="https://vanityurls.link/en/accessibility/"&gt;Accessibility Statement&lt;/a&gt; and a &lt;a href="https://vanityurls.link/en/trust/"&gt;Trust Center&lt;/a&gt; with the current conformance target, known gaps, and reporting channels. Brand work should preserve those commitments instead of treating them as a separate compliance page.&lt;/p&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Preserve visible focus states.&lt;/li&gt;
&lt;li&gt;Use meaningful link text.&lt;/li&gt;
&lt;li&gt;Keep color contrast readable.&lt;/li&gt;
&lt;li&gt;Provide localized alternative text for badges and images.&lt;/li&gt;
&lt;li&gt;Avoid layouts where text overlaps, clips, or becomes too small to read.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="site-standards"&gt;Site standards&lt;/h2&gt;
&lt;p&gt;The current website targets WCAG 2.1 Level AA and documents partial conformance publicly. That standard applies to brand pages, documentation, generated redirect pages, badges, and operator-facing product surfaces.&lt;/p&gt;</description></item><item><title>Components and patterns</title><link>https://brand.vanityurls.link/design-language/components-and-patterns/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/design-language/components-and-patterns/</guid><description>&lt;p&gt;The brand system should reuse existing components before creating new ones. Shared patterns keep pages predictable and reduce CSS drift.&lt;/p&gt;
&lt;h2 id="documentation-patterns"&gt;Documentation patterns&lt;/h2&gt;
&lt;p&gt;Use existing Hugo shortcodes and CSS components for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Callouts and notices.&lt;/li&gt;
&lt;li&gt;Steps and ordered setup flows.&lt;/li&gt;
&lt;li&gt;File trees and repository structure.&lt;/li&gt;
&lt;li&gt;Code blocks with copy buttons.&lt;/li&gt;
&lt;li&gt;Tables for tokens, assets, and compatibility notes.&lt;/li&gt;
&lt;li&gt;Details sections for secondary explanation.&lt;/li&gt;
&lt;li&gt;Cards for repeated navigation items or downloads.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="product-patterns"&gt;Product patterns&lt;/h2&gt;
&lt;p&gt;Generated redirect and operator-facing surfaces should feel related to the documentation without becoming documentation pages.&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><item><title>Iconography</title><link>https://brand.vanityurls.link/design-language/iconography/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/design-language/iconography/</guid><description>&lt;p&gt;Iconography should clarify meaning, not decorate empty space. The vanityURLs system follows the practical shape of the &lt;a href="https://ux.redhat.com/foundations/iconography/"&gt;Red Hat iconography foundation&lt;/a&gt;: choose icons from a known set, use them consistently, and make their purpose clear in context.&lt;/p&gt;
&lt;h2 id="icon-roles"&gt;Icon roles&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Role&lt;/th&gt;
 &lt;th&gt;Use&lt;/th&gt;
 &lt;th&gt;Guidance&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Navigation&lt;/td&gt;
 &lt;td&gt;Section identity, previous/next cues, external links&lt;/td&gt;
 &lt;td&gt;Pair with text unless the icon is universally understood and labelled for assistive technology.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Actions&lt;/td&gt;
 &lt;td&gt;Copy, download, search, open, close, theme toggle&lt;/td&gt;
 &lt;td&gt;Use familiar symbols and preserve hover, pressed, and focus states.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Status&lt;/td&gt;
 &lt;td&gt;Success, warning, danger, blocked, expired, maintenance&lt;/td&gt;
 &lt;td&gt;Pair with visible text. Do not rely on color or icon shape alone.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Metadata&lt;/td&gt;
 &lt;td&gt;GitHub, RSS, social, file type, language&lt;/td&gt;
 &lt;td&gt;Keep small and subordinate to the label or value.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Illustration&lt;/td&gt;
 &lt;td&gt;Product concepts or brand storytelling&lt;/td&gt;
 &lt;td&gt;Use sparingly; documentation should remain useful before it becomes expressive.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="style"&gt;Style&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Prefer a consistent outline style for interface icons.&lt;/li&gt;
&lt;li&gt;Use filled icons only when the state or icon set requires it, such as selected status or social marks.&lt;/li&gt;
&lt;li&gt;Keep icon stroke, size, and optical weight balanced with adjacent text.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;1em&lt;/code&gt; icons inside inline text and stable square dimensions for icon buttons.&lt;/li&gt;
&lt;li&gt;Do not mix unrelated icon libraries in the same control group.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="accessibility"&gt;Accessibility&lt;/h2&gt;
&lt;p&gt;Decorative icons should be hidden from assistive technology. Informative icons need an accessible name or nearby text that carries the same meaning.&lt;/p&gt;</description></item><item><title>Diagrams and code</title><link>https://brand.vanityurls.link/design-language/diagrams-and-code/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/design-language/diagrams-and-code/</guid><description>&lt;p&gt;vanityURLs is a technical product, so diagrams and code examples are part of the brand language. They should clarify behavior, not decorate the page.&lt;/p&gt;
&lt;h2 id="mermaid-diagrams"&gt;Mermaid diagrams&lt;/h2&gt;
&lt;p&gt;Use Mermaid for redirect flows, deployment paths, routing decisions, and lifecycle diagrams.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keep diagrams small enough to understand without zooming.&lt;/li&gt;
&lt;li&gt;Label edges with real conditions such as &lt;code&gt;alias found&lt;/code&gt;, &lt;code&gt;blocked&lt;/code&gt;, &lt;code&gt;expired&lt;/code&gt;, or &lt;code&gt;fallback&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Prefer left-to-right flow for request pipelines.&lt;/li&gt;
&lt;li&gt;Use diagrams to explain behavior that would be harder to parse as prose.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="code-blocks"&gt;Code blocks&lt;/h2&gt;
&lt;p&gt;Code blocks use Chroma class-based highlighting and copy buttons. Keep examples complete enough to run or recognize.&lt;/p&gt;</description></item><item><title>Interaction</title><link>https://brand.vanityurls.link/design-language/interaction/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/design-language/interaction/</guid><description>&lt;p&gt;Interactions should be predictable, quick to understand, and visibly reversible when the action is local.&lt;/p&gt;
&lt;p&gt;The interaction guidance builds from the &lt;a href="https://ux.redhat.com/foundations/interactions/links/"&gt;Red Hat links foundation&lt;/a&gt;: links connect users to pages, sections, and resources; buttons perform actions on the current surface. That distinction matters on vanityURLs because generated pages often ask visitors to decide whether to continue, inspect, or report a link.&lt;/p&gt;
&lt;h2 id="navigation"&gt;Navigation&lt;/h2&gt;
&lt;p&gt;The documentation uses active sidebar states, mobile navigation, anchor links, previous and next links, and an optional table of contents. Preserve those patterns so users can move through reference content without relearning the site.&lt;/p&gt;</description></item><item><title>Dark mode and themes</title><link>https://brand.vanityurls.link/design-language/dark-mode-and-themes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://brand.vanityurls.link/design-language/dark-mode-and-themes/</guid><description>&lt;p&gt;The website uses Tailwind&amp;rsquo;s class-based dark mode. Theme changes should feel like the same system under different lighting, not like a separate brand.&lt;/p&gt;
&lt;h2 id="theme-behavior"&gt;Theme behavior&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Initialize the selected theme before paint when possible.&lt;/li&gt;
&lt;li&gt;Preserve active navigation, focus, hover, and selected states in both themes.&lt;/li&gt;
&lt;li&gt;Keep code highlighting readable on light and dark backgrounds.&lt;/li&gt;
&lt;li&gt;Avoid theme-specific content unless the asset itself requires a light or dark version.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="color-in-dark-mode"&gt;Color in dark mode&lt;/h2&gt;
&lt;p&gt;Use teal accents sparingly on dark surfaces. Brand teal should identify links, selected states, and important accents; it should not become the background for every panel.&lt;/p&gt;</description></item></channel></rss>