<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on cphaynes.app</title><link>https://cphaynes.app/posts/</link><description>Recent content in Posts on cphaynes.app</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 30 Aug 2026 11:02:48 -0400</lastBuildDate><atom:link href="https://cphaynes.app/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>How This Site Is Built</title><link>https://cphaynes.app/posts/how-this-site-is-built/</link><pubDate>Sun, 30 Aug 2026 11:02:48 -0400</pubDate><guid>https://cphaynes.app/posts/how-this-site-is-built/</guid><description>&lt;p&gt;This site is a static &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; blog, hand-built rather than hosted on a managed platform, served from a small home server with no inbound ports opened on the router. Here&amp;rsquo;s the full stack, front to back.&lt;/p&gt;
&lt;h2 id="the-generator"&gt;The generator&lt;/h2&gt;
&lt;p&gt;The site is built with Hugo (extended edition, for the Sass/SCSS pipeline some themes need), using the &lt;a href="https://github.com/adityatelange/hugo-PaperMod"&gt;PaperMod&lt;/a&gt; theme as a git submodule rather than a vendored copy — that keeps theme updates a simple &lt;code&gt;git submodule update --remote&lt;/code&gt; away from the actual content. Site-specific look-and-feel changes (typography, spacing, color palette, small structural tweaks) live entirely in a &lt;code&gt;layouts/&lt;/code&gt; and &lt;code&gt;assets/css/extended/&lt;/code&gt; override directory alongside the theme, so nothing is hand-edited inside the theme&amp;rsquo;s own files. That&amp;rsquo;s Hugo&amp;rsquo;s standard override mechanism: anything you drop in the site&amp;rsquo;s own &lt;code&gt;layouts/_partials/&lt;/code&gt; shadows the theme&amp;rsquo;s version of that same partial, and any CSS files under &lt;code&gt;assets/css/extended/&lt;/code&gt; get concatenated in automatically after the theme&amp;rsquo;s core stylesheet — so a later rule with equal specificity wins the cascade without needing &lt;code&gt;!important&lt;/code&gt; anywhere.&lt;/p&gt;</description></item></channel></rss>