{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Retro Garden",
  "home_page_url": "https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app",
  "feed_url": "https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/feed.json",
  "description": "Retro Garden is an open source Eleventy theme that blends IndieWeb publishing habits with bright, hand-made early-web energy.",
  "authors": [
    {
      "name": "Your Name",
      "url": "https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app"
    }
  ],
  "items": [
    {
      "id": "https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/palette-tour-and-layout-switches/",
      "url": "https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/palette-tour-and-layout-switches/",
      "title": "Palette Tour and Layout Switches",
      "summary": "The starter now shows how the same structure can feel different through palette choices and sidebar toggles.",
      "content_html": "<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>\n<p>In this starter, that mostly comes down to two decisions:</p>\n<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>\n<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>\n<blockquote>\n<p>The layout should stay recognizable even when the color story changes.</p>\n</blockquote>\n<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>\n<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>\n<pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token punctuation\">---</span>\n<span class=\"token key atrule\">layout</span><span class=\"token punctuation\">:</span> layouts/page.njk\n<span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> Notes\n<span class=\"token key atrule\">sidebarTitle</span><span class=\"token punctuation\">:</span> links.txt\n<span class=\"token key atrule\">sidebar</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">|</span><span class=\"token scalar string\">\n  - Add any supporting links here\n  - Or leave both fields out for a full-width page</span>\n<span class=\"token punctuation\">---</span></code></pre>\n<p>The goal is to make layout choices feel intentional rather than inherited by accident.</p>\n",
      "date_published": "2026-04-08T00:00:00.000Z",
      "tags": [
        "design",
        "palettes",
        "pages"
      ]
    },
    {
      "id": "https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/the-small-web-toolkit/",
      "url": "https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/the-small-web-toolkit/",
      "title": "The Small-Web Toolkit",
      "summary": "A quick tour of the pieces that make this starter feel current without sanding off its handmade vibe.",
      "content_html": "<p>The stack here is intentionally practical.</p>\n<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>\n<p>I also wanted a setup that feels open to tinkering:</p>\n<ol>\n<li>Markdown posts should stay first-class.</li>\n<li>Tag URLs should stay clean and predictable.</li>\n<li>Feeds should exist automatically.</li>\n<li>Accessibility checks should fit into the normal workflow.</li>\n</ol>\n<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>\n<pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token punctuation\">---</span>\n<span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> A New Entry\n<span class=\"token key atrule\">description</span><span class=\"token punctuation\">:</span> This file lives in src/posts/\n<span class=\"token key atrule\">postSidebar</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">false</span>\n<span class=\"token key atrule\">tags</span><span class=\"token punctuation\">:</span>\n  <span class=\"token punctuation\">-</span> post\n  <span class=\"token punctuation\">-</span> eleventy\n<span class=\"token punctuation\">---</span></code></pre>\n<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>\n<p>Here are a few more examples from the kinds of files this starter is made of:</p>\n<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>\n\n<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>\n  <span class=\"token literal-property property\">duration</span><span class=\"token operator\">:</span> <span class=\"token string\">\"1d\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token literal-property property\">type</span><span class=\"token operator\">:</span> <span class=\"token string\">\"json\"</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre>\n<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>\n  <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>\n  <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>\n  <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>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>nav</span><span class=\"token punctuation\">></span></span></code></pre>\n<pre class=\"language-css\"><code class=\"language-css\"><span class=\"token selector\">.author-panel</span> <span class=\"token punctuation\">{</span>\n  <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>\n  <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>\n<span class=\"token punctuation\">}</span></code></pre>\n<pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">npm</span> <span class=\"token function\">install</span>\n<span class=\"token function\">npm</span> run start</code></pre>\n",
      "date_published": "2026-04-07T00:00:00.000Z",
      "tags": [
        "eleventy",
        "webc",
        "accessibility"
      ]
    },
    {
      "id": "https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/when-retro-stops-being-a-gimmick/",
      "url": "https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/when-retro-stops-being-a-gimmick/",
      "title": "When Retro Stops Being a Gimmick",
      "summary": "A 90s-inspired layout works best when it supports the writing instead of distracting from it.",
      "content_html": "<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>\n<p>For this theme, that means:</p>\n<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>\n<p>Window chrome, badge walls, and status strips create atmosphere. The actual reading surface still needs to be calm.</p>\n<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>\n<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>\n<blockquote>\n<p>If the visual joke makes the page harder to use, the joke has overstayed its welcome.</p>\n</blockquote>\n<h2 id=\"make-customization-obvious\" tabindex=\"-1\">Make customization obvious <a class=\"heading-anchor\" href=\"#make-customization-obvious\" aria-hidden=\"true\">#</a></h2>\n<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>\n",
      "date_published": "2026-04-04T00:00:00.000Z",
      "tags": [
        "design",
        "tailwind"
      ]
    },
    {
      "id": "https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/view-source-stay-human/",
      "url": "https://retro-garden-eleventy-theme-6teb2u98o-kylereddochs-projects.vercel.app/journal/view-source-stay-human/",
      "title": "View Source, Stay Human",
      "summary": "Why a hand-made site still feels more generous than an infinitely optimized profile page.",
      "content_html": "<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>\n<p>That is still the energy I want in a modern personal site:</p>\n<ul>\n<li>readable HTML and markdown</li>\n<li>a feed somebody can subscribe to</li>\n<li>URLs that can survive a redesign</li>\n<li>enough structure to publish often without turning the site into a product</li>\n</ul>\n<h2 id=\"my-baseline-checklist\" tabindex=\"-1\">My baseline checklist <a class=\"heading-anchor\" href=\"#my-baseline-checklist\" aria-hidden=\"true\">#</a></h2>\n<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>\n<ul>\n<li>a feed</li>\n<li>clean permalinks</li>\n<li>an about page that can be edited without ceremony</li>\n<li>posts that are still readable after the decorative pieces are stripped away</li>\n</ul>\n<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>\n<p><a class=\"button-88 button-88--ember\" href=\"/feed.xml\"><span>READ THE FEED</span></a></p>\n<p>That little button is a shortcode, and this whole post is plain markdown. The fancy bits should stay optional.</p>\n",
      "date_published": "2026-04-01T00:00:00.000Z",
      "tags": [
        "indieweb",
        "publishing"
      ]
    }
  ]
}