<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>ssg.tradik.com</title>
  <link href="https://ssg.tradik.com/" rel="alternate"/>
  <link href="https://ssg.tradik.com/feed.xml" rel="self"/>
  <id>https://ssg.tradik.com/</id>
  <updated>2026-08-07T22:50:29Z</updated>
  <entry>
    <title>Building a Planet: One Feed From Three Sites, Yours Included</title>
    <link href="https://ssg.tradik.com/blog/building-a-planet/"/>
    <id>https://ssg.tradik.com/blog/building-a-planet/</id>
    <published>2026-08-07T00:00:00Z</published>
    <updated>2026-08-07T22:50:29Z</updated>
    <summary>We publish in more than one place. SSG has its own site with its own blog. MDDB has another. Then there is tradik.com, which is where someone actually lands when they want to know what we have been…</summary>
  </entry>
  <entry>
    <title>I Went Looking for CPU Tricks and Found a Quadratic Loop</title>
    <link href="https://ssg.tradik.com/blog/making-builds-faster/"/>
    <id>https://ssg.tradik.com/blog/making-builds-faster/</id>
    <published>2026-08-03T00:00:00Z</published>
    <updated>2026-08-07T22:50:29Z</updated>
    <summary>The question was simple: how do we make publishing faster? My instincts fired off the usual list — better caching, tighter memory layout, maybe some CPU architecture tricks. Profile-guided…</summary>
  </entry>
  <entry>
    <title>SSG 1.8.16: Content That Thinks, Announces Itself, and Links Itself</title>
    <link href="https://ssg.tradik.com/blog/release-1-8-16/"/>
    <id>https://ssg.tradik.com/blog/release-1-8-16/</id>
    <published>2026-08-02T00:00:00Z</published>
    <updated>2026-08-07T22:50:29Z</updated>
    <summary>The last two releases were about speed and structure. 1.8.16 is about the edges of publishing — the small jobs around a post that you either do by hand every time or wire up a SaaS for: summarising…</summary>
  </entry>
  <entry>
    <title>Tell the Designer What You Want: the ssg mcp Development Server</title>
    <link href="https://ssg.tradik.com/blog/mcp-development-server/"/>
    <id>https://ssg.tradik.com/blog/mcp-development-server/</id>
    <published>2026-08-02T00:00:00Z</published>
    <updated>2026-08-07T22:50:29Z</updated>
    <summary>Here&#39;s a workflow that used to require careful copy-pasting: you tell an AI assistant &#34;make the hero section two-column and move the tag list under the title&#34;, it suggests a diff, you apply it, you…</summary>
  </entry>
  <entry>
    <title>Related Posts, From a Line of Template to Semantic Search</title>
    <link href="https://ssg.tradik.com/blog/related-posts/"/>
    <id>https://ssg.tradik.com/blog/related-posts/</id>
    <published>2026-08-02T00:00:00Z</published>
    <updated>2026-08-07T22:50:29Z</updated>
    <summary>A &#34;related articles&#34; block is the cheapest way to keep a reader on your site: they finished one thing, here are five more they&#39;ll probably like. The trick is that &#34;probably like&#34; has three very…</summary>
  </entry>
  <entry>
    <title>AI in Your Content, at Build Time — Not in the Browser</title>
    <link href="https://ssg.tradik.com/blog/ai-in-content/"/>
    <id>https://ssg.tradik.com/blog/ai-in-content/</id>
    <published>2026-08-02T00:00:00Z</published>
    <updated>2026-08-07T22:50:29Z</updated>
    <summary>There are two places you can put an AI call on a website: in the visitor&#39;s browser, or in your build. Almost everyone reaches for the first — a widget that calls an API on page load — and almost…</summary>
  </entry>
  <entry>
    <title>How to Use the [ai …] Shortcode: A Practical Walkthrough</title>
    <link href="https://ssg.tradik.com/blog/using-ai-shortcode/"/>
    <id>https://ssg.tradik.com/blog/using-ai-shortcode/</id>
    <published>2026-08-02T00:00:00Z</published>
    <updated>2026-08-07T22:50:29Z</updated>
    <summary>This is the hands-on companion to AI in Your Content. That post argues why build-time AI beats a browser widget; this one gets you from zero to a working [ai …] in about five minutes.</summary>
  </entry>
  <entry>
    <title>How to Announce Your Posts Without Ever Double-Posting</title>
    <link href="https://ssg.tradik.com/blog/using-notifications/"/>
    <id>https://ssg.tradik.com/blog/using-notifications/</id>
    <published>2026-08-02T00:00:00Z</published>
    <updated>2026-08-07T22:50:29Z</updated>
    <summary>Everyone who has ever automated &#34;tweet when I publish&#34; has, at least once, tweeted the same post three times — because the build ran three times. That failure mode is the entire design problem, and…</summary>
  </entry>
  <entry>
    <title>The Build Got Parallel — and the Caches Nobody Told You About</title>
    <link href="https://ssg.tradik.com/blog/faster-builds/"/>
    <id>https://ssg.tradik.com/blog/faster-builds/</id>
    <published>2026-08-01T00:00:00Z</published>
    <updated>2026-08-07T22:50:29Z</updated>
    <summary>Here is a confession. Until this release, an SSG build did everything one thing at a time. Convert an image, then the next, then the next. On a text-only site you never notice — the whole thing is…</summary>
  </entry>
  <entry>
    <title>Legible to Machines: What Landed in SSG 1.8.14</title>
    <link href="https://ssg.tradik.com/blog/release-1-8-14/"/>
    <id>https://ssg.tradik.com/blog/release-1-8-14/</id>
    <published>2026-07-31T00:00:00Z</published>
    <updated>2026-08-07T22:50:29Z</updated>
    <summary>Most of what a static site generator does is for people: render the Markdown, style the page, ship the HTML. But a page has other readers you never think about — the scraper that builds a link…</summary>
  </entry>
  <entry>
    <title>One Site, Many Workers: What Landed in SSG 1.8.13</title>
    <link href="https://ssg.tradik.com/blog/workers-release-1-8-13/"/>
    <id>https://ssg.tradik.com/blog/workers-release-1-8-13/</id>
    <published>2026-07-24T00:00:00Z</published>
    <updated>2026-08-07T22:50:29Z</updated>
    <summary>For a while SSG had exactly one escape hatch from &#34;everything is static&#34;: a worker: block that dropped a single Cloudflare Pages Functions tree into your build. That was enough for a contact form or…</summary>
  </entry>
  <entry>
    <title>Static Content, Edge Transactions: Cloudflare Functions, Redirects, and Stripe in SSG</title>
    <link href="https://ssg.tradik.com/blog/cloudflare-workers-redirects-and-stripe/"/>
    <id>https://ssg.tradik.com/blog/cloudflare-workers-redirects-and-stripe/</id>
    <published>2026-07-22T00:00:00Z</published>
    <updated>2026-08-07T22:50:29Z</updated>
    <summary>Web sites usually fall into two traps. Either they start out static and get rewritten into heavy SSR frameworks the moment marketing asks for a Stripe payment button, or they launch as a massive Node…</summary>
  </entry>
  <entry>
    <title>Your hero image is your LCP score</title>
    <link href="https://ssg.tradik.com/blog/images-and-lcp/"/>
    <id>https://ssg.tradik.com/blog/images-and-lcp/</id>
    <published>2026-07-21T00:00:00Z</published>
    <updated>2026-08-07T22:50:29Z</updated>
    <summary>Open any page that fails Core Web Vitals and there is a good chance the culprit is a single JPEG. The Largest Contentful Paint element — the thing Google times at 2.5 seconds for a passing grade…</summary>
  </entry>
  <entry>
    <title>SSG, and the case for boring websites</title>
    <link href="https://ssg.tradik.com/blog/what-ssg-is/"/>
    <id>https://ssg.tradik.com/blog/what-ssg-is/</id>
    <published>2026-07-18T00:00:00Z</published>
    <updated>2026-08-07T22:50:29Z</updated>
    <summary>Most websites do not need a server. They need to answer a question that was already known when the page was written — what does this product cost, what did the release change, how do I install the…</summary>
  </entry>
</feed>
