<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>Retro Garden</title>
    <link>https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app</link>
    <description>Retro Garden is an open source Eleventy theme that blends IndieWeb publishing habits with bright, hand-made early-web energy.</description>
    <language>en</language>
    <lastBuildDate>Wed, 08 Apr 2026 00:00:00 +0000</lastBuildDate>
    
      <item>
        <title>Palette Tour and Layout Switches</title>
        <link>https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/palette-tour-and-layout-switches/</link>
        <guid>https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/palette-tour-and-layout-switches/</guid>
        <pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate>
        <description><![CDATA[<p>One of the nicest things about a personal-site theme is when the <strong>same structure</strong> can hold several moods without turning into three separate codebases.</p>
<p>In this starter, that mostly comes down to two decisions:</p>
<h2 id="palette-choice-changes-tone-fast" tabindex="-1">Palette choice changes tone fast <a class="heading-anchor" href="#palette-choice-changes-tone-fast" aria-hidden="true">#</a></h2>
<p><code>Ember</code> feels warm and familiar. <code>Surf</code> feels cooler and more technical. <code>Mint</code> feels a little more zine-like and homegrown.</p>
<blockquote>
<p>The layout should stay recognizable even when the color story changes.</p>
</blockquote>
<h2 id="sidebars-should-be-optional" tabindex="-1">Sidebars should be optional <a class="heading-anchor" href="#sidebars-should-be-optional" aria-hidden="true">#</a></h2>
<p>Not every page needs a second column. Standalone pages now render full width by default, and only create a sidebar when the page front matter explicitly asks for it.</p>
<pre class="language-yaml"><code class="language-yaml"><span class="token punctuation">---</span>
<span class="token key atrule">layout</span><span class="token punctuation">:</span> layouts/page.njk
<span class="token key atrule">title</span><span class="token punctuation">:</span> Notes
<span class="token key atrule">sidebarTitle</span><span class="token punctuation">:</span> links.txt
<span class="token key atrule">sidebar</span><span class="token punctuation">:</span> <span class="token punctuation">|</span><span class="token scalar string">
  - Add any supporting links here
  - Or leave both fields out for a full-width page</span>
<span class="token punctuation">---</span></code></pre>
<p>The goal is to make layout choices feel intentional rather than inherited by accident.</p>
]]></description>
      </item>
    
      <item>
        <title>The Small-Web Toolkit</title>
        <link>https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/the-small-web-toolkit/</link>
        <guid>https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/the-small-web-toolkit/</guid>
        <pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
        <description><![CDATA[<p>The stack here is intentionally practical.</p>
<p><code>Eleventy</code> handles the publishing flow. <code>WebC</code> gives us reusable little interface chunks. <code>is-land</code> keeps optional JavaScript from becoming a tax on every page view. <code>eleventy-plugin-og-image</code> makes social cards part of the build instead of a separate design chore.</p>
<p>I also wanted a setup that feels open to tinkering:</p>
<ol>
<li>Markdown posts should stay first-class.</li>
<li>Tag URLs should stay clean and predictable.</li>
<li>Feeds should exist automatically.</li>
<li>Accessibility checks should fit into the normal workflow.</li>
</ol>
<p>That combination is more interesting to me than a theme that looks polished in screenshots but feels brittle the moment you try to make it your own.</p>
<pre class="language-yaml"><code class="language-yaml"><span class="token punctuation">---</span>
<span class="token key atrule">title</span><span class="token punctuation">:</span> A New Entry
<span class="token key atrule">description</span><span class="token punctuation">:</span> This file lives in src/posts/
<span class="token key atrule">postSidebar</span><span class="token punctuation">:</span> <span class="token boolean important">false</span>
<span class="token key atrule">tags</span><span class="token punctuation">:</span>
  <span class="token punctuation">-</span> post
  <span class="token punctuation">-</span> eleventy
<span class="token punctuation">---</span></code></pre>
<p>That <code>postSidebar: false</code> flag is small, but it is the kind of thing that makes a starter feel considerate to edit.</p>
<p>Here are a few more examples from the kinds of files this starter is made of:</p>
<pre class="language-js"><code class="language-js"><span class="token keyword">import</span> EleventyFetch <span class="token keyword">from</span> <span class="token string">"@11ty/eleventy-fetch"</span><span class="token punctuation">;</span>

<span class="token keyword">const</span> data <span class="token operator">=</span> <span class="token keyword">await</span> <span class="token function">EleventyFetch</span><span class="token punctuation">(</span><span class="token string">"https://registry.npmjs.org/@11ty/eleventy/latest"</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
  <span class="token literal-property property">duration</span><span class="token operator">:</span> <span class="token string">"1d"</span><span class="token punctuation">,</span>
  <span class="token literal-property property">type</span><span class="token operator">:</span> <span class="token string">"json"</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>nav</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>accent-picker<span class="token punctuation">"</span></span> <span class="token attr-name">aria-label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Switch the accent palette<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>?theme=ember<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>ember<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>?theme=surf<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>surf<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>?theme=mint<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>mint<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>nav</span><span class="token punctuation">></span></span></code></pre>
<pre class="language-css"><code class="language-css"><span class="token selector">.author-panel</span> <span class="token punctuation">{</span>
  <span class="token property">border</span><span class="token punctuation">:</span> 2px solid <span class="token function">var</span><span class="token punctuation">(</span>--color-line<span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token property">background</span><span class="token punctuation">:</span> <span class="token function">linear-gradient</span><span class="token punctuation">(</span>180deg<span class="token punctuation">,</span> <span class="token function">rgba</span><span class="token punctuation">(</span>255<span class="token punctuation">,</span> 255<span class="token punctuation">,</span> 255<span class="token punctuation">,</span> 0.92<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token function">var</span><span class="token punctuation">(</span>--accent-soft<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span></code></pre>
<pre class="language-bash"><code class="language-bash"><span class="token function">npm</span> <span class="token function">install</span>
<span class="token function">npm</span> run start</code></pre>
]]></description>
      </item>
    
      <item>
        <title>When Retro Stops Being a Gimmick</title>
        <link>https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/when-retro-stops-being-a-gimmick/</link>
        <guid>https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/when-retro-stops-being-a-gimmick/</guid>
        <pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate>
        <description><![CDATA[<p>The trick with retro web design is not to recreate every flashing banner and beveled button. It is to remember <strong>why</strong> those pages felt alive.</p>
<p>For this theme, that means:</p>
<h2 id="keep-the-nostalgia-structural" tabindex="-1">Keep the nostalgia structural <a class="heading-anchor" href="#keep-the-nostalgia-structural" aria-hidden="true">#</a></h2>
<p>Window chrome, badge walls, and status strips create atmosphere. The actual reading surface still needs to be calm.</p>
<h2 id="let-accessibility-be-part-of-the-style" tabindex="-1">Let accessibility be part of the style <a class="heading-anchor" href="#let-accessibility-be-part-of-the-style" aria-hidden="true">#</a></h2>
<p>Visible focus rings, roomy line-height, and strong color contrast are not “modern compromises.” They are what let the weird parts stay charming instead of exhausting.</p>
<blockquote>
<p>If the visual joke makes the page harder to use, the joke has overstayed its welcome.</p>
</blockquote>
<h2 id="make-customization-obvious" tabindex="-1">Make customization obvious <a class="heading-anchor" href="#make-customization-obvious" aria-hidden="true">#</a></h2>
<p>If somebody opens this starter and can instantly find the site data, post content, and panel components, the design becomes an invitation instead of a trap.</p>
]]></description>
      </item>
    
      <item>
        <title>View Source, Stay Human</title>
        <link>https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/view-source-stay-human/</link>
        <guid>https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/view-source-stay-human/</guid>
        <pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate>
        <description><![CDATA[<p>The older web had rough edges, but it also made room for personality. You could tell when a page had been <em>made by a person</em> rather than tuned by a growth team.</p>
<p>That is still the energy I want in a modern personal site:</p>
<ul>
<li>readable HTML and markdown</li>
<li>a feed somebody can subscribe to</li>
<li>URLs that can survive a redesign</li>
<li>enough structure to publish often without turning the site into a product</li>
</ul>
<h2 id="my-baseline-checklist" tabindex="-1">My baseline checklist <a class="heading-anchor" href="#my-baseline-checklist" aria-hidden="true">#</a></h2>
<p>If a theme claims to support the small web, I want to see a few boring, practical things working before I care about the screenshots:</p>
<ul>
<li>a feed</li>
<li>clean permalinks</li>
<li>an about page that can be edited without ceremony</li>
<li>posts that are still readable after the decorative pieces are stripped away</li>
</ul>
<p>The IndieWeb ethos helps because it asks practical questions. Can I own the URL? Can I move hosts without losing myself? Can other people follow this site without an account?</p>
<p><a class="button-88 button-88--ember" href="/feed.xml"><span>READ THE FEED</span></a></p>
<p>That little button is a shortcode, and this whole post is plain markdown. The fancy bits should stay optional.</p>
]]></description>
      </item>
    
  </channel>
</rss>
