<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="pretty-atom-feed.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  
  <title>Blog Title</title>
  <subtitle>This is a longer description about your blog.</subtitle>
  <link href="https://example.com/2023/feed/feed.xml" rel="self" />
  <link href="https://example.com/2023/" />
  <updated>2023-11-18T00:00:00Z</updated>
  <id>https://example.com/2023/</id>
  <author>
    <name>Your Name</name>
  </author>
  <entry>
    <title>How I migrated this blog from Astro to Eleventy</title>
    <link href="https://example.com/2023/11/how-i-migrated-this-blog-from-astro-to-eleventy/" />
    <updated>2023-11-18T00:00:00Z</updated>
    <id>https://example.com/2023/11/how-i-migrated-this-blog-from-astro-to-eleventy/</id>
    <content type="html">&lt;p&gt;I know what the migration posts usually say, because I have written five of them, so let me skip the apology paragraph — &lt;em&gt;(it&#39;s been a while; the redesign took longer than expected; the drafts are coming)&lt;/em&gt; — there, consider it skipped, and let me instead address the question my friend Eirik asked when I told him the news:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Wait. People are migrating &lt;em&gt;to&lt;/em&gt; Astro. Everyone is migrating to Astro. You had Astro. What is wrong with you?&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A fair question, asked with love, answered as follows.&lt;/p&gt;
&lt;h2 id=&quot;nothing-was-wrong-with-astro&quot;&gt;Nothing was wrong with Astro&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://example.com/2023/2022/&quot;&gt;Astro&lt;/a&gt; shipped zero JavaScript and I said the platform churn was structurally over, and I meant it. But over the past year I kept noticing small things. My content schema is in TypeScript. My config is in TypeScript. The &lt;code&gt;.astro&lt;/code&gt; file format is its own language with its own compiler — a lovely one! — that exists so my Markdown can become HTML, a transformation I have now purchased from six different vendors.&lt;/p&gt;
&lt;p&gt;In October I got a build error inside &lt;code&gt;content.config.ts&lt;/code&gt;. I fixed it in four minutes. But sitting there, fixing a &lt;em&gt;type error&lt;/em&gt; in a &lt;em&gt;configuration language&lt;/em&gt; for a &lt;em&gt;blog with one post&lt;/em&gt;, I had what I can only describe as a moment of clarity.&lt;/p&gt;
&lt;h2 id=&quot;enter-eleventy&quot;&gt;Enter Eleventy&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.11ty.dev/&quot;&gt;Eleventy&lt;/a&gt; is a static site generator that has been quietly excellent since 2018 while everything else was being reinvented. It is JavaScript-the-language, not JavaScript-the-lifestyle:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Templates are Nunjucks (or eleven other languages; it does not care).&lt;/li&gt;
&lt;li&gt;Data is a cascade of plain objects. A post is a Markdown file. A config is a function.&lt;/li&gt;
&lt;li&gt;There is no client runtime, no compiler, no schema, no &lt;code&gt;.eleventy&lt;/code&gt;-flavored anything.&lt;/li&gt;
&lt;li&gt;Build time: &lt;strong&gt;1.4 seconds.&lt;/strong&gt; RSS: an honest Atom feed, still alive. Dark mode: via &lt;code&gt;prefers-color-scheme&lt;/code&gt;, like nature intended.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Permalinks remain &lt;code&gt;/year/month/title/&lt;/code&gt; — fourteen years, six engines, zero broken URLs. At this point the permalink structure is the senior-most engineer on this project.&lt;/p&gt;
&lt;p&gt;And yes: I am aware this migration runs &lt;em&gt;against&lt;/em&gt; traffic. The whole internet is going 11ty → Astro and I have gone Astro → 11ty, like a man walking calmly up the down escalator. But that&#39;s exactly the point. I keep migrating toward whatever feels like less, and Eleventy is the first tool that feels like &lt;em&gt;almost nothing&lt;/em&gt;. There is barely anything left between me and the writing now. One config file. Three templates. That&#39;s it.&lt;/p&gt;
&lt;p&gt;Next post will be the sorting-algorithms one. It&#39;s basically done. I just want to tweak the syntax highlighting first.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;— Olav&lt;/em&gt;&lt;/p&gt;
</content>
  </entry>
</feed>