<?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/" xmlns:blog="https://jonesrussell.github.io/blog/ns"><channel><title>Personal-Site on Web Developer Blog</title><link>https://jonesrussell.github.io/blog/tags/personal-site/</link><description>Recent content in Personal-Site on Web Developer Blog</description><image><title>Web Developer Blog</title><url>https://jonesrussell.github.io/blog/images/og-default.png</url><link>https://jonesrussell.github.io/blog/images/og-default.png</link></image><generator>Hugo -- 0.160.0</generator><language>en-us</language><lastBuildDate>Sun, 05 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jonesrussell.github.io/blog/tags/personal-site/feed.xml" rel="self" type="application/rss+xml"/><item><title>Build a free links page with GitHub Pages</title><link>https://jonesrussell.github.io/blog/github-links-page/</link><pubDate>Sun, 05 Apr 2026 00:00:00 +0000</pubDate><guid>https://jonesrussell.github.io/blog/github-links-page/</guid><category>general</category><blog:tag>github</blog:tag><blog:tag>github-pages</blog:tag><blog:tag>html</blog:tag><blog:tag>personal-site</blog:tag><description>How to turn your GitHub profile into a links page you own, with zero dependencies and no monthly fee.</description><content:encoded><![CDATA[<p>Ahnii!</p>
<p>A <a href="https://bsky.app/profile/rkrn.me/post/3milmywaclkno">Bluesky thread</a> recently reminded me how many developers still reach for <a href="https://linktr.ee/">Linktree</a> or <a href="https://carrd.co/">Carrd</a> when they need a simple links page. You don&rsquo;t need either. GitHub gives you two free surfaces that work as a links hub right now: a profile README and a Pages site. This post walks through both, then covers where to go if you want more.</p>
<h2 id="why-own-your-links-page">Why own your links page</h2>
<p>Linktree, Carrd, and similar services are convenient. They&rsquo;re also someone else&rsquo;s domain, someone else&rsquo;s design constraints, and someone else&rsquo;s decision about whether your free tier keeps working next year.</p>
<p>A links page is one HTML file. It doesn&rsquo;t need a SaaS product. When you host it yourself, you control the URL, the design, and the uptime. GitHub Pages gives you HTTPS, a clean subdomain, and global CDN for free.</p>
<p>That&rsquo;s the pitch. Here&rsquo;s how to set it up.</p>
<h2 id="option-1-the-profile-readme">Option 1: the profile README</h2>
<p>Every GitHub account has a special repo: <code>your-username/your-username</code>. Create it, add a <code>README.md</code>, and GitHub renders it at the top of your profile page.</p>
<h3 id="create-the-repo">Create the repo</h3>
<ol>
<li>Go to <a href="https://github.com/new">github.com/new</a></li>
<li>Name the repo exactly the same as your GitHub username</li>
<li>Make it public</li>
<li>Check &ldquo;Add a README file&rdquo;</li>
<li>Click <strong>Create repository</strong></li>
</ol>
<p>GitHub shows a banner confirming this is a special repo. Your <code>README.md</code> now renders on your profile.</p>
<h3 id="structure-it-as-a-links-page">Structure it as a links page</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-markdown" data-lang="markdown"><span style="display:flex;"><span># Hey, I&#39;m [Your Name]
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>One-liner about what you do.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">## Links
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> [<span style="color:#f92672">Portfolio</span>](<span style="color:#a6e22e">https://your-site.com</span>)
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> [<span style="color:#f92672">Blog</span>](<span style="color:#a6e22e">https://your-blog.com</span>)
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> [<span style="color:#f92672">LinkedIn</span>](<span style="color:#a6e22e">https://linkedin.com/in/your-handle</span>)
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> [<span style="color:#f92672">Email</span>](<span style="color:#a6e22e">mailto:you@example.com</span>)
</span></span></code></pre></div><p>That&rsquo;s a functional links page. Markdown supports links, headings, images, and badges. You can add project descriptions, tech stacks, or whatever context helps visitors understand who you are.</p>
<p>The profile README is a good starting point, but it lives on github.com. If you want a standalone URL you can share anywhere, GitHub Pages is the next step.</p>
<h2 id="option-2-a-github-pages-links-site">Option 2: a GitHub Pages links site</h2>
<p><a href="https://pages.github.com/">GitHub Pages</a> serves a static site from a repo. Create a repo named <code>your-username.github.io</code>, drop in an <code>index.html</code>, and you have a live site at <code>https://your-username.github.io</code>.</p>
<h3 id="create-the-repo-1">Create the repo</h3>
<ol>
<li>Create a new repo named <code>your-username.github.io</code></li>
<li>Clone it locally:</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/your-username/your-username.github.io.git
</span></span><span style="display:flex;"><span>cd your-username.github.io
</span></span></code></pre></div><p>This gives you an empty repo ready for your site files.</p>
<h3 id="add-a-single-file-links-page">Add a single-file links page</h3>
<p>Create an <code>index.html</code>. Here&rsquo;s a minimal starting point:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-html" data-lang="html"><span style="display:flex;"><span><span style="color:#75715e">&lt;!DOCTYPE html&gt;</span>
</span></span><span style="display:flex;"><span>&lt;<span style="color:#f92672">html</span> <span style="color:#a6e22e">lang</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;en&#34;</span>&gt;
</span></span><span style="display:flex;"><span>&lt;<span style="color:#f92672">head</span>&gt;
</span></span><span style="display:flex;"><span>  &lt;<span style="color:#f92672">meta</span> <span style="color:#a6e22e">charset</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;UTF-8&#34;</span>&gt;
</span></span><span style="display:flex;"><span>  &lt;<span style="color:#f92672">meta</span> <span style="color:#a6e22e">name</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;viewport&#34;</span> <span style="color:#a6e22e">content</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;width=device-width, initial-scale=1.0&#34;</span>&gt;
</span></span><span style="display:flex;"><span>  &lt;<span style="color:#f92672">title</span>&gt;Your Name&lt;/<span style="color:#f92672">title</span>&gt;
</span></span><span style="display:flex;"><span>  &lt;<span style="color:#f92672">style</span>&gt;
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">*,</span> <span style="color:#f92672">*</span>::<span style="color:#a6e22e">before</span><span style="color:#f92672">,</span> <span style="color:#f92672">*</span>::<span style="color:#a6e22e">after</span> { <span style="color:#66d9ef">box-sizing</span>: <span style="color:#66d9ef">border-box</span>; <span style="color:#66d9ef">margin</span>: <span style="color:#ae81ff">0</span>; <span style="color:#66d9ef">padding</span>: <span style="color:#ae81ff">0</span>; }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">body</span> {
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">font-family</span>: system-ui, <span style="color:#66d9ef">sans-serif</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">background</span>: <span style="color:#ae81ff">#0a0f14</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">color</span>: <span style="color:#ae81ff">#e8eef4</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">min-height</span>: <span style="color:#ae81ff">100</span><span style="color:#66d9ef">vh</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">display</span>: <span style="color:#66d9ef">flex</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">align-items</span>: <span style="color:#66d9ef">center</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">justify-content</span>: <span style="color:#66d9ef">center</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">padding</span>: <span style="color:#ae81ff">2</span><span style="color:#66d9ef">rem</span>;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    .<span style="color:#a6e22e">container</span> { <span style="color:#66d9ef">width</span>: <span style="color:#ae81ff">100</span><span style="color:#66d9ef">%</span>; <span style="color:#66d9ef">max-width</span>: <span style="color:#ae81ff">560</span><span style="color:#66d9ef">px</span>; }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">h1</span> { <span style="color:#66d9ef">font-size</span>: <span style="color:#ae81ff">2.5</span><span style="color:#66d9ef">rem</span>; <span style="color:#66d9ef">margin-bottom</span>: <span style="color:#ae81ff">0.5</span><span style="color:#66d9ef">rem</span>; }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    .<span style="color:#a6e22e">tagline</span> {
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">color</span>: <span style="color:#ae81ff">#7a9ab5</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">margin-bottom</span>: <span style="color:#ae81ff">2</span><span style="color:#66d9ef">rem</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">line-height</span>: <span style="color:#ae81ff">1.6</span>;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    .<span style="color:#a6e22e">links</span> {
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">display</span>: <span style="color:#66d9ef">grid</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">grid-template-columns</span>: <span style="color:#ae81ff">1</span>fr <span style="color:#ae81ff">1</span>fr;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">gap</span>: <span style="color:#ae81ff">0.75</span><span style="color:#66d9ef">rem</span>;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    .<span style="color:#a6e22e">link-card</span> {
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">padding</span>: <span style="color:#ae81ff">1</span><span style="color:#66d9ef">rem</span> <span style="color:#ae81ff">1.25</span><span style="color:#66d9ef">rem</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">background</span>: <span style="color:#ae81ff">#111820</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">border</span>: <span style="color:#ae81ff">1</span><span style="color:#66d9ef">px</span> <span style="color:#66d9ef">solid</span> <span style="color:#ae81ff">#1e2d3d</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">border-radius</span>: <span style="color:#ae81ff">8</span><span style="color:#66d9ef">px</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">text-decoration</span>: <span style="color:#66d9ef">none</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">color</span>: <span style="color:#ae81ff">#e8eef4</span>;
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">transition</span>: <span style="color:#66d9ef">border-color</span> <span style="color:#ae81ff">0.15</span><span style="color:#66d9ef">s</span> <span style="color:#66d9ef">ease</span>;
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    .<span style="color:#a6e22e">link-card</span>:<span style="color:#a6e22e">hover</span> { <span style="color:#66d9ef">border-color</span>: <span style="color:#ae81ff">#00b4a0</span>; }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    .<span style="color:#a6e22e">link-card</span> .<span style="color:#a6e22e">label</span> { <span style="color:#66d9ef">font-weight</span>: <span style="color:#ae81ff">500</span>; <span style="color:#66d9ef">display</span>: <span style="color:#66d9ef">block</span>; }
</span></span><span style="display:flex;"><span>    .<span style="color:#a6e22e">link-card</span> .<span style="color:#a6e22e">desc</span> { <span style="color:#66d9ef">font-size</span>: <span style="color:#ae81ff">0.8</span><span style="color:#66d9ef">rem</span>; <span style="color:#66d9ef">color</span>: <span style="color:#ae81ff">#7a9ab5</span>; }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    @<span style="color:#66d9ef">media</span> <span style="color:#f92672">(</span><span style="color:#f92672">max-width</span><span style="color:#f92672">:</span> <span style="color:#f92672">420px</span><span style="color:#f92672">)</span> {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">h1</span> { <span style="color:#66d9ef">font-size</span>: <span style="color:#ae81ff">2</span><span style="color:#66d9ef">rem</span>; }
</span></span><span style="display:flex;"><span>      .<span style="color:#a6e22e">links</span> { <span style="color:#66d9ef">grid-template-columns</span>: <span style="color:#ae81ff">1</span>fr; }
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>  &lt;/<span style="color:#f92672">style</span>&gt;
</span></span><span style="display:flex;"><span>&lt;/<span style="color:#f92672">head</span>&gt;
</span></span><span style="display:flex;"><span>&lt;<span style="color:#f92672">body</span>&gt;
</span></span><span style="display:flex;"><span>  &lt;<span style="color:#f92672">div</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;container&#34;</span>&gt;
</span></span><span style="display:flex;"><span>    &lt;<span style="color:#f92672">h1</span>&gt;Your Name&lt;/<span style="color:#f92672">h1</span>&gt;
</span></span><span style="display:flex;"><span>    &lt;<span style="color:#f92672">p</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;tagline&#34;</span>&gt;What you do, in one or two sentences.&lt;/<span style="color:#f92672">p</span>&gt;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    &lt;<span style="color:#f92672">div</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;links&#34;</span>&gt;
</span></span><span style="display:flex;"><span>      &lt;<span style="color:#f92672">a</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;link-card&#34;</span> <span style="color:#a6e22e">href</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;https://your-portfolio.com&#34;</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">span</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;label&#34;</span>&gt;Portfolio&lt;/<span style="color:#f92672">span</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">span</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;desc&#34;</span>&gt;Projects and work&lt;/<span style="color:#f92672">span</span>&gt;
</span></span><span style="display:flex;"><span>      &lt;/<span style="color:#f92672">a</span>&gt;
</span></span><span style="display:flex;"><span>      &lt;<span style="color:#f92672">a</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;link-card&#34;</span> <span style="color:#a6e22e">href</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;https://your-blog.com&#34;</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">span</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;label&#34;</span>&gt;Blog&lt;/<span style="color:#f92672">span</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">span</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;desc&#34;</span>&gt;Writing and tutorials&lt;/<span style="color:#f92672">span</span>&gt;
</span></span><span style="display:flex;"><span>      &lt;/<span style="color:#f92672">a</span>&gt;
</span></span><span style="display:flex;"><span>      &lt;<span style="color:#f92672">a</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;link-card&#34;</span> <span style="color:#a6e22e">href</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;https://github.com/your-username&#34;</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">span</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;label&#34;</span>&gt;GitHub&lt;/<span style="color:#f92672">span</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">span</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;desc&#34;</span>&gt;Open source&lt;/<span style="color:#f92672">span</span>&gt;
</span></span><span style="display:flex;"><span>      &lt;/<span style="color:#f92672">a</span>&gt;
</span></span><span style="display:flex;"><span>      &lt;<span style="color:#f92672">a</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;link-card&#34;</span> <span style="color:#a6e22e">href</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;https://linkedin.com/in/your-handle&#34;</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">span</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;label&#34;</span>&gt;LinkedIn&lt;/<span style="color:#f92672">span</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">span</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;desc&#34;</span>&gt;Professional profile&lt;/<span style="color:#f92672">span</span>&gt;
</span></span><span style="display:flex;"><span>      &lt;/<span style="color:#f92672">a</span>&gt;
</span></span><span style="display:flex;"><span>    &lt;/<span style="color:#f92672">div</span>&gt;
</span></span><span style="display:flex;"><span>  &lt;/<span style="color:#f92672">div</span>&gt;
</span></span><span style="display:flex;"><span>&lt;/<span style="color:#f92672">body</span>&gt;
</span></span><span style="display:flex;"><span>&lt;/<span style="color:#f92672">html</span>&gt;
</span></span></code></pre></div><p>This gives you a dark-themed, responsive two-column grid. No build tools, no dependencies, no framework. One file, under 100 lines of code.</p>
<h3 id="push-and-go-live">Push and go live</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git add index.html
</span></span><span style="display:flex;"><span>git commit -m <span style="color:#e6db74">&#34;Add links page&#34;</span>
</span></span><span style="display:flex;"><span>git push
</span></span></code></pre></div><p>Within a minute, your site is live at <code>https://your-username.github.io</code>. GitHub Pages is enabled by default for repos with this naming convention.</p>
<h3 id="add-open-graph-metadata">Add Open Graph metadata</h3>
<p>Social platforms pull title, description, and image from OG meta tags when someone shares your link. Add these inside <code>&lt;head&gt;</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-html" data-lang="html"><span style="display:flex;"><span>&lt;<span style="color:#f92672">meta</span> <span style="color:#a6e22e">property</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;og:title&#34;</span> <span style="color:#a6e22e">content</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;Your Name&#34;</span>&gt;
</span></span><span style="display:flex;"><span>&lt;<span style="color:#f92672">meta</span> <span style="color:#a6e22e">property</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;og:description&#34;</span> <span style="color:#a6e22e">content</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;Your one-liner.&#34;</span>&gt;
</span></span><span style="display:flex;"><span>&lt;<span style="color:#f92672">meta</span> <span style="color:#a6e22e">property</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;og:type&#34;</span> <span style="color:#a6e22e">content</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;website&#34;</span>&gt;
</span></span><span style="display:flex;"><span>&lt;<span style="color:#f92672">meta</span> <span style="color:#a6e22e">property</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;og:url&#34;</span> <span style="color:#a6e22e">content</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;https://your-username.github.io&#34;</span>&gt;
</span></span><span style="display:flex;"><span>&lt;<span style="color:#f92672">meta</span> <span style="color:#a6e22e">property</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;og:image&#34;</span> <span style="color:#a6e22e">content</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;https://your-username.github.io/photo.jpg&#34;</span>&gt;
</span></span></code></pre></div><p>Drop a photo in the repo root and reference it in the <code>og:image</code> tag. Now when you share your link on LinkedIn or Bluesky, the preview card shows your face instead of a blank box.</p>
<h2 id="use-both-together">Use both together</h2>
<p>The profile README and Pages site serve different audiences. The README catches developers who land on your GitHub profile. The Pages site gives you a clean URL to put in your social bios, email signature, and conference slides.</p>
<p>Point the README&rsquo;s links to your Pages site (or vice versa) so both surfaces reinforce each other. For example, the <a href="https://github.com/jonesrussell">jonesrussell profile README</a> introduces the person and the work, while <a href="https://jonesrussell.github.io">jonesrussell.github.io</a> is the shareable link card.</p>
<h2 id="taking-it-further">Taking it further</h2>
<p>A single HTML file covers most needs. If you outgrow it, here are three directions worth considering.</p>
<h3 id="add-a-custom-domain">Add a custom domain</h3>
<p>GitHub Pages supports custom domains for free. In your repo settings under <strong>Pages</strong>, add your domain and configure a CNAME DNS record. GitHub handles the SSL certificate automatically. Your links page goes from <code>your-username.github.io</code> to <code>links.yourdomain.com</code> (or whatever you prefer).</p>
<h3 id="use-a-static-site-generator">Use a static site generator</h3>
<p>If you want templating, multiple pages, or a blog alongside your links page, a static site generator keeps things manageable:</p>
<ul>
<li><strong><a href="https://astro.build/">Astro</a></strong> is beginner-friendly and ships zero JavaScript by default. It has <a href="https://astro.build/themes/">link page themes</a> ready to customize.</li>
<li><strong><a href="https://gohugo.io/">Hugo</a></strong> is fast and works well if you&rsquo;re already writing markdown. This blog runs on Hugo.</li>
<li><strong><a href="https://www.11ty.dev/">11ty</a></strong> is minimal and flexible, with no opinions about your frontend stack.</li>
</ul>
<p>All three deploy to GitHub Pages with a simple Actions workflow.</p>
<h3 id="try-a-css-framework">Try a CSS framework</h3>
<p>If you want better design without writing all the CSS yourself, drop in a utility framework:</p>
<ul>
<li><strong><a href="https://tailwindcss.com/">Tailwind CSS</a></strong> via CDN for rapid styling without a build step</li>
<li><strong><a href="https://picocss.com/">Pico CSS</a></strong> for classless styling that looks good out of the box</li>
<li>A single <code>&lt;link&gt;</code> tag pointing to <a href="https://watercss.kognise.dev/">Water.css</a> for a no-effort dark theme</li>
</ul>
<p>None of these require a build tool. Add a <code>&lt;link&gt;</code> or <code>&lt;script&gt;</code> tag and start using them.</p>
<h2 id="own-your-links-own-your-url">Own your links, own your URL</h2>
<p>Your links page is the one URL that represents you everywhere. Owning it means you decide how it looks, what it links to, and where it lives. GitHub gives you the hosting for free. The rest is just HTML.</p>
<p>Baamaapii</p>
]]></content:encoded></item></channel></rss>