<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Planet Tradik</title>
  <link href="https://tradik.com/blog/" rel="alternate"/>
  <link href="https://tradik.com/blog/feed.xml" rel="self"/>
  <id>https://tradik.com/blog/</id>
  <updated>2026-08-07T21:36:44Z</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-07T21:12:46Z</updated>
    <category term="SSG"/>
    <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>From Next.js to SSG: Rebuilding tradik.com</title>
    <link href="https://tradik.com/blog/from-nextjs-to-ssg/"/>
    <id>https://tradik.com/blog/from-nextjs-to-ssg/</id>
    <published>2026-08-07T00:00:00Z</published>
    <updated>2026-08-07T21:35:48Z</updated>
    <category term="ssg"/>
    <category term="nextjs"/>
    <category term="static-site"/>
    <category term="cloudflare"/>
    <category term="migration"/>
    <category term="seo"/>
    <category term="Tradik"/>
    <summary>tradik.com ran on Next.js with output: &#39;export&#39;. That produced a static site,
and everything about it was reasonable in isolation. Taken together it was a
React toolchain, a node_modules tree of several hundred packages and a build
step, all to publish nine pages that do not change between deploys.
</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-07T21:12:46Z</updated>
    <category term="SSG"/>
    <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>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-07T21:12:46Z</updated>
    <category term="SSG"/>
    <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 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-07T21:12:46Z</updated>
    <category term="SSG"/>
    <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>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-07T21:12:46Z</updated>
    <category term="SSG"/>
    <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>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-07T21:12:46Z</updated>
    <category term="SSG"/>
    <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>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-07T21:12:46Z</updated>
    <category term="SSG"/>
    <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-07T21:12:46Z</updated>
    <category term="SSG"/>
    <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>Your WordPress just became AI-searchable: MDDB Sync</title>
    <link href="https://mddb.tradik.com/blog/wordpress-plugin/"/>
    <id>https://mddb.tradik.com/blog/wordpress-plugin/</id>
    <published>2026-08-02T00:00:00Z</published>
    <updated>2026-08-07T21:36:44Z</updated>
    <category term="MDDB"/>
    <summary>There&#39;s a decade of knowledge sitting in your WordPress. Product announcements,
how-to guides, changelogs, that one post from 2019 that still answers half of
your support tickets. And when you plug an AI agent into your company, the
first thing it asks is, effectively: where&#39;s the knowledge?
The MDD</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-07T21:12:46Z</updated>
    <category term="SSG"/>
    <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-07T21:12:46Z</updated>
    <category term="SSG"/>
    <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>MDDB 2.11.4: tenants, better RAG, vectors that fit</title>
    <link href="https://mddb.tradik.com/blog/mddb-2-11-4/"/>
    <id>https://mddb.tradik.com/blog/mddb-2-11-4/</id>
    <published>2026-07-31T00:00:00Z</published>
    <updated>2026-08-07T21:36:44Z</updated>
    <category term="MDDB"/>
    <summary>We spent the last cycle reading a lot of feedback — not just about MDDB, but
about what people using vector databases in general keep running into. A few
themes came up again and again: &amp;quot;I want to put multiple customers on one
instance without building isolation myself&amp;quot;, &amp;quot;my RAG answe</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-07T21:12:46Z</updated>
    <category term="SSG"/>
    <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-07T21:12:46Z</updated>
    <category term="SSG"/>
    <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-07T21:12:46Z</updated>
    <category term="SSG"/>
    <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-07T21:12:46Z</updated>
    <category term="SSG"/>
    <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>
