<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Migration on Samarthya</title><link>https://samarthya.me/tags/migration/</link><description>Recent content in Migration on Samarthya</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© Samarthya 2018-2026. All rights reserved.</copyright><lastBuildDate>Mon, 26 Oct 2026 07:10:00 -0400</lastBuildDate><atom:link href="https://samarthya.me/tags/migration/index.xml" rel="self" type="application/rss+xml"/><item><title>Moving to Hugo, part 2: The migration playbook</title><link>https://samarthya.me/posts/moving-to-hugo-2-the-migration-playbook/</link><pubDate>Mon, 26 Oct 2026 07:10:00 -0400</pubDate><guid>https://samarthya.me/posts/moving-to-hugo-2-the-migration-playbook/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; Ten phases, in the order that kept my risk low. Each one ends with something you can check, so you always&#10;know whether it&amp;rsquo;s safe to move on.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;The numbers come from my own move: &lt;strong&gt;137 WordPress posts&lt;/strong&gt; from six years, a few hundred images, and a domain&#10;that also carried email. Your numbers will differ; the order shouldn&amp;rsquo;t.&lt;/p&gt;</description></item><item><title>Moving to Hugo, part 1: Why Hugo</title><link>https://samarthya.me/posts/moving-to-hugo-1-why-hugo/</link><pubDate>Mon, 26 Oct 2026 07:00:00 -0400</pubDate><guid>https://samarthya.me/posts/moving-to-hugo-1-why-hugo/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; After the blog was broken into, I had to decide where it would live next. This is how I made that choice,&#10;written so you can reuse the reasoning even if you end up somewhere else.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;The story of the break-in is in &lt;a href="../rebuilding-1-the-day-the-blog-fell/" &gt;Rebuilding samarthya.me&lt;/a&gt;. This&#10;series is the practical companion: &lt;strong&gt;why Hugo&lt;/strong&gt;, &lt;strong&gt;how to migrate step by step&lt;/strong&gt;, and &lt;strong&gt;what living with it&#10;is like&lt;/strong&gt;. My own site is the worked example throughout.&lt;/p&gt;</description></item><item><title>Rebuilding samarthya.me, part 2: Salvaging the content</title><link>https://samarthya.me/posts/rebuilding-2-salvaging-the-content/</link><pubDate>Sun, 25 Oct 2026 12:10:00 -0400</pubDate><guid>https://samarthya.me/posts/rebuilding-2-salvaging-the-content/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; Text is easy to save. Dates, images, code blocks and six years of links are where a migration quietly loses&#10;things. Here&amp;rsquo;s what it took to bring them across.&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;h2 class="relative group"&gt;The raw material&#10; &lt;div id="the-raw-material" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-raw-material" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;WordPress can export everything as one XML file (WXR). Together with a database dump and a copy of the&#10;uploads folder, that&amp;rsquo;s the whole site. The export held &lt;strong&gt;139 published posts&lt;/strong&gt;. Two were the attacker&amp;rsquo;s, so&#10;they were excluded permanently: &lt;strong&gt;137 posts&lt;/strong&gt; to convert.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/rebuilding-2-salvaging-the-content/feature.jpg"/></item><item><title>Rebuilt on Hugo</title><link>https://samarthya.me/daily/2026/10/rebuilt-on-hugo/</link><pubDate>Sat, 24 Oct 2026 22:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/10/rebuilt-on-hugo/</guid><description>&lt;p&gt;A long day, and a good one. The blog is now a static &lt;a href="https://gohugo.io/" target="_blank" rel="noreferrer"&gt;Hugo&lt;/a&gt; site: no database, no plugins,&#10;nothing to break into. It&amp;rsquo;s published straight from a git repository.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;137 posts&lt;/strong&gt; converted, and every old link redirects to its new address.&lt;/li&gt;&#10;&lt;li&gt;An old backup turned up &lt;strong&gt;126 of the missing images&lt;/strong&gt;. A handful are still gone for good.&lt;/li&gt;&#10;&lt;li&gt;A new homepage that says what this place is for, and topics that sort themselves.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Fall down, get up, build again.&lt;/p&gt;</description></item><item><title>Salvaging six years of posts</title><link>https://samarthya.me/daily/2026/10/salvaging-six-years-of-posts/</link><pubDate>Fri, 23 Oct 2026 20:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/10/salvaging-six-years-of-posts/</guid><description>&lt;p&gt;Exported every post from the old site and went through the export carefully. The text survived. Many of the images did not: the server was serving error pages where pictures used to be. Also found a couple of &amp;ldquo;posts&amp;rdquo; I never wrote. Those stay out.&lt;/p&gt;</description></item></channel></rss>