<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>migrating to blog</title>
    <link>https://migratingto.dev/blog</link>
    <description>Migration case studies: who moved, from where to where, what they gained, and what they learned.</description>
    <atom:link href="https://migratingto.dev/blog/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>POLYWOOD left a custom Magento build that took most of the engineering time</title>
      <link>https://migratingto.dev/blog/polywood-magento-to-shopify</link>
      <guid>https://migratingto.dev/blog/polywood-magento-to-shopify</guid>
      <pubDate>Sat, 14 Nov 2026 00:00:00 GMT</pubDate>
      <description>A vendor case study of POLYWOOD moving from Magento to Shopify.</description>
    </item>
    <item>
      <title>Four ShipFast domains left Mailgun for Resend and stopped forwarding replies</title>
      <link>https://migratingto.dev/blog/shipfast-mailgun-to-resend</link>
      <guid>https://migratingto.dev/blog/shipfast-mailgun-to-resend</guid>
      <pubDate>Sun, 08 Nov 2026 00:00:00 GMT</pubDate>
      <description>Bill Nalen moved four ShipFast domains off Mailgun in December 2023. Magic links stay on NextAuth. The mg subdomain goes away. In his write-up Resend does not forward replies, and each domain ends up with its own Resend account.</description>
    </item>
    <item>
      <title>A Squarespace export imported posts as Published and left the images on the old host</title>
      <link>https://migratingto.dev/blog/squarespace-export-published-posts-remote-images</link>
      <guid>https://migratingto.dev/blog/squarespace-export-published-posts-remote-images</guid>
      <pubDate>Sat, 07 Nov 2026 00:00:00 GMT</pubDate>
      <description>Rob Pickering moved robpickering.com on 20 July 2010 with a per-journal Movable Type file. Posts imported as Published with dates, authors, and comments, while the images kept loading from Squarespace.</description>
    </item>
    <item>
      <title>DEV moved production Postgres from Heroku to Neon with Bucardo</title>
      <link>https://migratingto.dev/blog/dev-heroku-postgres-to-neon</link>
      <guid>https://migratingto.dev/blog/dev-heroku-postgres-to-neon</guid>
      <pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate>
      <description>The DEV team kept the app on Heroku and moved the primary database after more than eight years. Bucardo ran on a DigitalOcean droplet. Leftover triggers forced a restart, and pooling took a few days. They disclose a Neon sponsorship on the same post.</description>
    </item>
    <item>
      <title>GiFT&apos;s corporate site left Firebase Hosting for Vercel</title>
      <link>https://migratingto.dev/blog/gift-firebase-hosting-to-vercel</link>
      <guid>https://migratingto.dev/blog/gift-firebase-hosting-to-vercel</guid>
      <pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate>
      <description>Naoki Ioroi at GiFT Inc. published the cutover on 5 August 2026. Firebase Hosting had been rewriting every request to Cloud Functions v2, with Remix assets copied by hand. The same post also moves Contentful to microCMS. This site has a hosting playbook and no microCMS one.</description>
    </item>
    <item>
      <title>hochzeitsplaza.de left Contentful for Strapi and built its own importer</title>
      <link>https://migratingto.dev/blog/hochzeitsplaza-contentful-to-strapi</link>
      <guid>https://migratingto.dev/blog/hochzeitsplaza-contentful-to-strapi</guid>
      <pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate>
      <description>A guest guide on Strapi&apos;s blog says a price rise made the move unavoidable for hochzeitsplaza.de. About 2,000 entries and over 11 GB of assets took about 7 hours. The tool is the author&apos;s, and the page prints no euro figure.</description>
    </item>
    <item>
      <title>Indeed turned Jenkins off the day the CloudBees license expired</title>
      <link>https://migratingto.dev/blog/indeed-jenkins-to-gitlab-ci</link>
      <guid>https://migratingto.dev/blog/indeed-jenkins-to-gitlab-ci</guid>
      <pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate>
      <description>Carl Myers describes Indeed&apos;s CI move from Hudson in 2007 to a Jenkins shutdown on 1 April 2024. About 11 platform engineers, tens of thousands of repos, and over 2,000 Jenkinsfiles still on the old system when the date was set. GitLab CI now runs over 25,000 pipelines a day.</description>
    </item>
    <item>
      <title>Kuda left Fivetran credit pricing for Airbyte and BigQuery</title>
      <link>https://migratingto.dev/blog/kuda-fivetran-to-airbyte</link>
      <guid>https://migratingto.dev/blog/kuda-fivetran-to-airbyte</guid>
      <pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate>
      <description>Airbyte&apos;s 1 February 2026 case study quotes Kuda&apos;s head of BI on SQL Server CDC into BigQuery. Credits ran out mid-cycle. The cutover took under three weeks, and some tables needed 48 to 72 hours to backfill. No dollar amount is on the page.</description>
    </item>
    <item>
      <title>Mux moved a Ghost blog into Sanity so it could ship with the marketing site</title>
      <link>https://migratingto.dev/blog/mux-ghost-to-sanity</link>
      <guid>https://migratingto.dev/blog/mux-ghost-to-sanity</guid>
      <pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate>
      <description>Dylan Jhaveri wrote two Sanity pages on the same day. The blog post says about 130 Ghost posts. The import guide says 128, over a couple of months. Ghost allowed one author. The new post type allows several, and the same people power the team page.</description>
    </item>
    <item>
      <title>ToolBox left Vercel for a static export on Cloudflare Pages</title>
      <link>https://migratingto.dev/blog/toolbox-vercel-to-cloudflare</link>
      <guid>https://migratingto.dev/blog/toolbox-vercel-to-cloudflare</guid>
      <pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate>
      <description>Johin describes a Next.js tool site, 139-plus pages and 20 API routes, moving off Vercel on 3 March 2026. The first Cloudflare deploy failed a 25 MB Worker limit. He also says the project uses the OpenNext adapter, which is a different runtime story from a pure static export.</description>
    </item>
    <item>
      <title>Traba spent a year moving Firestore collections to Postgres</title>
      <link>https://migratingto.dev/blog/traba-firestore-to-postgresql</link>
      <guid>https://migratingto.dev/blog/traba-firestore-to-postgresql</guid>
      <pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate>
      <description>Traba&apos;s engineering post walks a year of collection moves off Firestore onto Aiven Postgres with Prisma. Triggers plus reconciliation hit 99.99% precision in April. The shifts cutover flipped reads and writes together because replication lagged about a second. Firestore stayed for flags and cron.</description>
    </item>
    <item>
      <title>Zencity folded per-app Sentry into one Datadog shell</title>
      <link>https://migratingto.dev/blog/zencity-sentry-to-datadog</link>
      <guid>https://migratingto.dev/blog/zencity-sentry-to-datadog</guid>
      <pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate>
      <description>Shai Malul describes 10-plus micro-frontends, each with its own Sentry, moving frontend logs to Datadog RUM in the shell app. A module-federation SDK did not fit. About 200 logging calls in each of 5-plus repos were rewritten with JSCodeshift. Sentry is not described as uninstalled.</description>
    </item>
    <item>
      <title>ZenML rebuilt 2,224 Webflow pages in Astro during a one-week hackathon</title>
      <link>https://migratingto.dev/blog/zenml-webflow-to-astro</link>
      <guid>https://migratingto.dev/blog/zenml-webflow-to-astro</guid>
      <pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate>
      <description>Alex Strick van Linschoten moved zenml.io off Webflow in the February 2026 Claude Code hackathon. The page counts 2,224 generated pages, 2,151 crawled URLs, and 2,255 built HTML files as different sets. A five-day Webflow cache header kept the old site up after DNS moved.</description>
    </item>
    <item>
      <title>Angular apps left Heroku the week the free dynos ended</title>
      <link>https://migratingto.dev/blog/angular-heroku-to-vercel-free-tier</link>
      <guid>https://migratingto.dev/blog/angular-heroku-to-vercel-free-tier</guid>
      <pubDate>Thu, 05 Nov 2026 00:00:00 GMT</pubDate>
      <description>A few Angular SSR apps moved from Heroku to Vercel in November 2022, the week free dynos ended. The published change wraps the Angular server build in one Vercel function. One build error cleared after Node was set to 14x. The post does not move a database.</description>
    </item>
    <item>
      <title>Back Market retired Snowflake and Databricks after BigQuery was already the copy</title>
      <link>https://migratingto.dev/blog/back-market-snowflake-to-bigquery</link>
      <guid>https://migratingto.dev/blog/back-market-snowflake-to-bigquery</guid>
      <pubDate>Thu, 05 Nov 2026 00:00:00 GMT</pubDate>
      <description>Back Market&apos;s data already lived in BigQuery. The 2025 Google Cloud case study turned off Snowflake and Databricks and moved the wider stack off AWS. Earlier engineering posts show the Delta Lake landing, the Tableau check, and a later query-cost spike. The 90% figure is their CDC pipeline.</description>
    </item>
    <item>
      <title>Frump Fighters left Zapier for n8n and got a $400 plan refund</title>
      <link>https://migratingto.dev/blog/frump-fighters-zapier-to-n8n</link>
      <guid>https://migratingto.dev/blog/frump-fighters-zapier-to-n8n</guid>
      <pubDate>Thu, 05 Nov 2026 00:00:00 GMT</pubDate>
      <description>Nuance moved Frump Fighters off Zapier in 2021. Corina got more than $400 back on the yearly plan. The $5 a month line is Nuance&apos;s server pitch, not her bill. The page never lists the zaps.</description>
    </item>
    <item>
      <title>Ingewikkeld imported Slack users and left a decade of messages behind</title>
      <link>https://migratingto.dev/blog/ingewikkeld-slack-to-mattermost</link>
      <guid>https://migratingto.dev/blog/ingewikkeld-slack-to-mattermost</guid>
      <pubDate>Thu, 05 Nov 2026 00:00:00 GMT</pubDate>
      <description>Ingewikkeld moved from Slack to Mattermost on Nexaa in early 2025. Users and channels imported. A decade of messages hit an upload limit and stayed in an offline archive. The server is a 1 CPU, 2 GB Team Edition container on MySQL.</description>
    </item>
    <item>
      <title>Microsoft moved 1,600 Azure DevOps repos to GitHub and kept Boards and Pipelines</title>
      <link>https://migratingto.dev/blog/microsoft-cap-azure-devops-to-github</link>
      <guid>https://migratingto.dev/blog/microsoft-cap-azure-devops-to-github</guid>
      <pubDate>Thu, 05 Nov 2026 00:00:00 GMT</pubDate>
      <description>Microsoft&apos;s CAP group moved repos to GitHub over six months and left Azure Boards and Pipelines in place. The same post says both 80% of in-scope repos and 70% of active in-scope repos. Enterprise Live Migrator is the tool they expect for the mono repos still left.</description>
    </item>
    <item>
      <title>MidHard left Slack after a 30-day shutdown notice</title>
      <link>https://migratingto.dev/blog/midhard-slack-to-mattermost</link>
      <guid>https://migratingto.dev/blog/midhard-slack-to-mattermost</guid>
      <pubDate>Thu, 05 Nov 2026 00:00:00 GMT</pubDate>
      <description>Slack told MidHard Games on 19 December 2025 that the workspace would be suspended in 30 days. They exported with slackdump, imported into Mattermost on Yandex Cloud, and kept Slack for some partners. Their price table is rounded, and the license limits need Mattermost&apos;s own pages next to them.</description>
    </item>
    <item>
      <title>Novu&apos;s Route 53 to Cloudflare cutover was down for 55 minutes</title>
      <link>https://migratingto.dev/blog/novu-route-53-to-cloudflare-dns</link>
      <guid>https://migratingto.dev/blog/novu-route-53-to-cloudflare-dns</guid>
      <pubDate>Thu, 05 Nov 2026 00:00:00 GMT</pubDate>
      <description>Novu moved DNS from Route 53 to Cloudflare on 23 March 2025. The outage ran 22:00 to 22:55 UTC for every user. Lower TTLs and cache flushes did not stop stale nameservers or negative caching. The postmortem gives no record count and no TTL values.</description>
    </item>
    <item>
      <title>Outschool mirrored GitHub while GitLab became the place merges landed</title>
      <link>https://migratingto.dev/blog/outschool-github-to-gitlab</link>
      <guid>https://migratingto.dev/blog/outschool-github-to-gitlab</guid>
      <pubDate>Thu, 05 Nov 2026 00:00:00 GMT</pubDate>
      <description>Outschool imported GitHub into GitLab in 2022, then mirrored merge requests back so GitHub Actions and Heroku review apps kept running. A few senior engineers finished the GitLab move and the Heroku-to-Fargate move together in under three months. Traffic shifted on a Cloudflare load balancer over a few days.</description>
    </item>
    <item>
      <title>Starburst&apos;s Pulumi page says Galaxy deploys fell from two weeks to three hours</title>
      <link>https://migratingto.dev/blog/starburst-terraform-to-pulumi</link>
      <guid>https://migratingto.dev/blog/starburst-terraform-to-pulumi</guid>
      <pubDate>Thu, 05 Nov 2026 00:00:00 GMT</pubDate>
      <description>Pulumi&apos;s Starburst case study quotes a two-week Terraform deploy and &quot;about three hours a day&quot; after. The same page also says three hours flat, 112x, and a 99% cut. A 2023 Pulumi blog about the same engineer says 3x and a few minutes. Those are different sentences.</description>
    </item>
    <item>
      <title>Two Route 53 zones moved to Cloudflare once tunnels were the reason to stay</title>
      <link>https://migratingto.dev/blog/two-route-53-zones-to-cloudflare-dns</link>
      <guid>https://migratingto.dev/blog/two-route-53-zones-to-cloudflare-dns</guid>
      <pubDate>Thu, 05 Nov 2026 00:00:00 GMT</pubDate>
      <description>Two personal domains left Route 53 for Cloudflare DNS on 13 January 2025. The bill was about 12 euros a year. The cutover took about 45 minutes, and Ansible then left stale records behind. A later post shows the tunnel and DNS-01 setup still in place.</description>
    </item>
    <item>
      <title>Leaving Ghost Pro for Substack merged every list into one inbox</title>
      <link>https://migratingto.dev/blog/ghost-pro-substack-merged-lists</link>
      <guid>https://migratingto.dev/blog/ghost-pro-substack-merged-lists</guid>
      <pubDate>Wed, 04 Nov 2026 00:00:00 GMT</pubDate>
      <description>Candost left Ghost Pro for Substack so he could stop designing the site. Substack subscribed every address to every section, and his essay does not walk the importer.</description>
    </item>
    <item>
      <title>Gong routed non-urgent Datadog alerts into Sentry and left OpsGenie for pages</title>
      <link>https://migratingto.dev/blog/gong-datadog-alerts-to-sentry</link>
      <guid>https://migratingto.dev/blog/gong-datadog-alerts-to-sentry</guid>
      <pubDate>Wed, 04 Nov 2026 00:00:00 GMT</pubDate>
      <description>On 19 June 2022 Ran Mochary described a Datadog webhook bridge into Sentry. Urgent pages stayed on OpsGenie. A 10-minute beacon pages if the bridge goes quiet.</description>
    </item>
    <item>
      <title>KDE Plasma moved the Ocean design system from Figma to Penpot</title>
      <link>https://migratingto.dev/blog/kde-plasma-figma-to-penpot</link>
      <guid>https://migratingto.dev/blog/kde-plasma-figma-to-penpot</guid>
      <pubDate>Wed, 04 Nov 2026 00:00:00 GMT</pubDate>
      <description>On 25 October 2025 Andy Betts wrote that Plasma&apos;s Ocean design system is leaving Figma for Penpot. Variants landed. The UI is not in Plasma yet, and the file still sits in a personal GitLab repo.</description>
    </item>
    <item>
      <title>A media publisher moved about 50 million monthly searches off Algolia</title>
      <link>https://migratingto.dev/blog/ksolves-algolia-to-typesense</link>
      <guid>https://migratingto.dev/blog/ksolves-algolia-to-typesense</guid>
      <pubDate>Wed, 04 Nov 2026 00:00:00 GMT</pubDate>
      <description>Ksolves says an unnamed publisher cut search cost by 80% with self-hosted Typesense on AWS. The page is a consultancy case study, and the cluster is not Typesense Cloud.</description>
    </item>
    <item>
      <title>A thousand LastPass items moved to Bitwarden after the vault breach</title>
      <link>https://migratingto.dev/blog/lastpass-to-bitwarden-after-vault-breach</link>
      <guid>https://migratingto.dev/blog/lastpass-to-bitwarden-after-vault-breach</guid>
      <pubDate>Wed, 04 Nov 2026 00:00:00 GMT</pubDate>
      <description>On 3 January 2023 David J Eddy imported 1,000-plus LastPass items into Bitwarden in a few minutes. PGP notes were too long for a password item, and folders could not become nested groups.</description>
    </item>
    <item>
      <title>Mixpanel Engineering left Medium and kept the old archive online</title>
      <link>https://migratingto.dev/blog/mixpanel-medium-to-substack</link>
      <guid>https://migratingto.dev/blog/mixpanel-medium-to-substack</guid>
      <pubDate>Wed, 04 Nov 2026 00:00:00 GMT</pubDate>
      <description>Neal Kaviratna and Austin Pray moved the Mixpanel engineering blog to Substack on 16 May 2025. The public post is a few paragraphs, and the old Medium URLs stay up.</description>
    </item>
    <item>
      <title>Razroo left Pinecone namespaces for Qdrant filters and UUIDs</title>
      <link>https://migratingto.dev/blog/razroo-pinecone-to-qdrant</link>
      <guid>https://migratingto.dev/blog/razroo-pinecone-to-qdrant</guid>
      <pubDate>Wed, 04 Nov 2026 00:00:00 GMT</pubDate>
      <description>Charlie Greenman says Razroo moved off Pinecone on 4 April 2025. Qdrant filters replaced namespaces, string ids became UUIDs, and the speed claims are Razroo&apos;s.</description>
    </item>
    <item>
      <title>Revelry copied thousands of Pinecone vectors into Qdrant in about three minutes</title>
      <link>https://migratingto.dev/blog/revelry-pinecone-to-qdrant</link>
      <guid>https://migratingto.dev/blog/revelry-pinecone-to-qdrant</guid>
      <pubDate>Wed, 04 Nov 2026 00:00:00 GMT</pubDate>
      <description>Revelry&apos;s Elixir app already had a module per vector database. On 20 March 2024 they copied thousands of Pinecone vectors to Qdrant in batches of 100, and they still support both.</description>
    </item>
    <item>
      <title>Spotflow left SendGrid for Resend after verification mail sat in Gmail</title>
      <link>https://migratingto.dev/blog/spotflow-sendgrid-to-resend</link>
      <guid>https://migratingto.dev/blog/spotflow-sendgrid-to-resend</guid>
      <pubDate>Wed, 04 Nov 2026 00:00:00 GMT</pubDate>
      <description>Michael Mikuš measured SendGrid, Postmark, and Resend with GlockApps, then moved Spotflow&apos;s Auth0 verification mail to Resend. A template rewrite removed a four-minute Gmail delay that the provider swap did not.</description>
    </item>
    <item>
      <title>SteamLevels left Mailgun, then SendGrid, for Postmark shared IPs</title>
      <link>https://migratingto.dev/blog/steamlevels-mailgun-to-postmark</link>
      <guid>https://migratingto.dev/blog/steamlevels-mailgun-to-postmark</guid>
      <pubDate>Wed, 04 Nov 2026 00:00:00 GMT</pubDate>
      <description>In December 2020, jfx wrote that SteamLevels outgrew Mailgun and a SendGrid spam pool before landing on Postmark. About 5,000 emails a month made a dedicated IP the wrong fix.</description>
    </item>
    <item>
      <title>Leaving Airtable for Notion after features moved behind a higher plan</title>
      <link>https://migratingto.dev/blog/airtable-to-notion-higher-plan</link>
      <guid>https://migratingto.dev/blog/airtable-to-notion-higher-plan</guid>
      <pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate>
      <description>On 10 November 2023 the write-up said operations were moving from Airtable to Notion. The $450 a year is four tools together. This post has the reasons, and it does not have the field map.</description>
    </item>
    <item>
      <title>Channel.io left CircleCI outages for self-hosted GitHub Actions</title>
      <link>https://migratingto.dev/blog/channel-io-circleci-to-github-actions</link>
      <guid>https://migratingto.dev/blog/channel-io-circleci-to-github-actions</guid>
      <pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate>
      <description>Jaehong Jung moved Channel.io&apos;s CI from CircleCI to GitHub Actions on ARC. Self-hosted runners cut CI cost to about a third. Karpenter, Docker Hub limits, and GitHub&apos;s cache cap showed up in production.</description>
    </item>
    <item>
      <title>Dual-running Matomo and Google Analytics for a month</title>
      <link>https://migratingto.dev/blog/google-analytics-to-matomo-dual-run</link>
      <guid>https://migratingto.dev/blog/google-analytics-to-matomo-dual-run</guid>
      <pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate>
      <description>Google Analytics was replaced with a self-hosted Matomo install that skips cookies and honors Do Not Track. A one-month overlap showed Matomo pageviews about 11 percent lower.</description>
    </item>
    <item>
      <title>Leaving Google Analytics for self-hosted Matomo after Schrems II</title>
      <link>https://migratingto.dev/blog/google-analytics-to-matomo-schrems-ii</link>
      <guid>https://migratingto.dev/blog/google-analytics-to-matomo-schrems-ii</guid>
      <pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate>
      <description>On 20 January 2022 a blog replaced Google Analytics with Matomo and MariaDB in Docker. The snag was container networking. The write-up mentions a GA import and does not describe running one.</description>
    </item>
    <item>
      <title>Help Scout rebuilt a Sketch design system in Figma in a week</title>
      <link>https://migratingto.dev/blog/help-scout-sketch-to-figma</link>
      <guid>https://migratingto.dev/blog/help-scout-sketch-to-figma</guid>
      <pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate>
      <description>Buzz Usborne rebuilt Help Scout&apos;s Sketch libraries in Figma in a week. Nested symbols did not import cleanly, so he traced them. In-flight projects stayed in Sketch.</description>
    </item>
    <item>
      <title>HubSpot left Mixpanel, built an internal tool, then moved to Amplitude</title>
      <link>https://migratingto.dev/blog/hubspot-mixpanel-to-amplitude</link>
      <guid>https://migratingto.dev/blog/hubspot-mixpanel-to-amplitude</guid>
      <pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate>
      <description>Dan Wolchonok&apos;s January 2018 post traces HubSpot from Mixpanel in 2013, to an internal product-analytics tool, to Amplitude. About 250 to 300 people a month used Amplitude after the 2017 cutover. He does not describe an event export.</description>
    </item>
    <item>
      <title>IMG Licensing left Contentful after the free tier stopped fitting</title>
      <link>https://migratingto.dev/blog/img-licensing-contentful-to-sanity</link>
      <guid>https://migratingto.dev/blog/img-licensing-contentful-to-sanity</guid>
      <pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate>
      <description>John Kavanagh moved IMG Licensing from Contentful to Sanity in the same week he published, after the next Contentful plan crossed $300 a month. The front end was already on Next.js. He does not publish the import log.</description>
    </item>
    <item>
      <title>Mercari accepted broken Confluence imports and kept a closed-stack archive</title>
      <link>https://migratingto.dev/blog/mercari-confluence-to-notion</link>
      <guid>https://migratingto.dev/blog/mercari-confluence-to-notion</guid>
      <pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate>
      <description>Kiko Ando wrote up Mercari&apos;s Confluence to Notion project on 31 March 2026. The import was never perfect. Finance docs stayed out, and leftover pages are heading for a closed-stack archive.</description>
    </item>
    <item>
      <title>Semrush rebuilt Sketch libraries in Figma in just over a month</title>
      <link>https://migratingto.dev/blog/semrush-sketch-to-figma</link>
      <guid>https://migratingto.dev/blog/semrush-sketch-to-figma</guid>
      <pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate>
      <description>Five Semrush designers rebuilt the Sketch libraries in Figma between 19 March and 24 April 2020, alongside their normal work. Google Drive duplicates and Zeplin were the pain. Nested symbols were rebuilt.</description>
    </item>
    <item>
      <title>The Fork moved 4,500 Confluence pages in two weeks</title>
      <link>https://migratingto.dev/blog/the-fork-confluence-to-notion</link>
      <guid>https://migratingto.dev/blog/the-fork-confluence-to-notion</guid>
      <pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate>
      <description>Alegria.group says it moved more than 4,500 Confluence pages and 10 GB into Notion for The Fork in two weeks. The page is an agency case study. It names no Fork employee and lists no broken import.</description>
    </item>
    <item>
      <title>Baserow left GitLab because the community lived on GitHub</title>
      <link>https://migratingto.dev/blog/baserow-gitlab-to-github</link>
      <guid>https://migratingto.dev/blog/baserow-gitlab-to-github</guid>
      <pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate>
      <description>Bram Wiepjes moved primary development in November 2025. Rebuilding CI was the long job. Issues and open merge requests went over with a modified node-gitlab-2-github. GitLab stayed a read-only mirror.</description>
    </item>
    <item>
      <title>Clear Street spent two and a half quarters moving GitLab to GitHub</title>
      <link>https://migratingto.dev/blog/clear-street-gitlab-to-github</link>
      <guid>https://migratingto.dev/blog/clear-street-gitlab-to-github</guid>
      <pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate>
      <description>Self-hosted GitLab since 2018. Part 1 is the CI pain. Part 2 is dual CI, a tool called Octomigrator, and a mirror that lagged up to 15 minutes.</description>
    </item>
    <item>
      <title>1Password Concierge credited unused LastPass time</title>
      <link>https://migratingto.dev/blog/lastpass-to-1password-unused-time</link>
      <guid>https://migratingto.dev/blog/lastpass-to-1password-unused-time</guid>
      <pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate>
      <description>The move was published on 7 March 2023. The import is the official desktop path. The credit depended on a payment-history PDF and a helper bot whose URL now 404s.</description>
    </item>
    <item>
      <title>A hobby app left PlanetScale for Neon after the free plan ended</title>
      <link>https://migratingto.dev/blog/mostviertel-planetscale-to-neon</link>
      <guid>https://migratingto.dev/blog/mostviertel-planetscale-to-neon</guid>
      <pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate>
      <description>PlanetScale retired the Hobby plan on 8 April 2024. This 2024 write-up on mostviertel.tech uses pgloader, quote identifiers for Prisma names, and a baseline because PlanetScale migrations would not export.</description>
    </item>
    <item>
      <title>A Notion export as HTML, then a Markdown cleanup</title>
      <link>https://migratingto.dev/blog/notion-to-obsidian-html-cleanup</link>
      <guid>https://migratingto.dev/blog/notion-to-obsidian-html-cleanup</guid>
      <pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate>
      <description>On 25 April 2025 he exported the workspace to HTML and ran Obsidian Importer. Large databases needed hand edits. Dataview lost to the Tasks plugin. The vault is the website repo, synced with Syncthing.</description>
    </item>
    <item>
      <title>A month leaving Notion, and the web-clipper links got dropped</title>
      <link>https://migratingto.dev/blog/notion-to-obsidian-one-month</link>
      <guid>https://migratingto.dev/blog/notion-to-obsidian-one-month</guid>
      <pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate>
      <description>Notion went from $8 to $12 a month. Obsidian Sync was $4. He had tried twice before. The third try took a month, thousands of documents, and a written-off clipper archive.</description>
    </item>
    <item>
      <title>A Notion to Obsidian import that dumped thousands of images in the vault root</title>
      <link>https://migratingto.dev/blog/notion-to-obsidian-vault-root-images</link>
      <guid>https://migratingto.dev/blog/notion-to-obsidian-vault-root-images</guid>
      <pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate>
      <description>The switch was 1 January 2025, after Notion since 2018. The Importer kept the Notion tree and left the pictures in one folder. Cleanup took a couple of months.</description>
    </item>
    <item>
      <title>Skyscrapers finished Terraform to OpenTofu 1.6.2 in four phases</title>
      <link>https://migratingto.dev/blog/skyscrapers-terraform-to-opentofu</link>
      <guid>https://migratingto.dev/blog/skyscrapers-terraform-to-opentofu</guid>
      <pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate>
      <description>Frederik Denkens says the license change from Terraform 1.6.0 pushed the move. By the end of May 2024 the company was on OpenTofu 1.6.2. The post names the phases and skips the state file.</description>
    </item>
    <item>
      <title>TrueCar moved 700 Spacelift stacks off Terraform</title>
      <link>https://migratingto.dev/blog/truecar-terraform-to-opentofu</link>
      <guid>https://migratingto.dev/blog/truecar-terraform-to-opentofu</guid>
      <pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate>
      <description>Matt Velez wrote this as a guest post on Spacelift&apos;s blog. More than 700 stacks climbed Terraform 1.5.5, then OpenTofu 1.6.2, then 1.9.0. An S3 backend key built from locals makes Terraform init fail on purpose.</description>
    </item>
    <item>
      <title>WhiteUI.Store left Gumroad after PayPal payouts stopped</title>
      <link>https://migratingto.dev/blog/whiteui-gumroad-to-lemonsqueezy</link>
      <guid>https://migratingto.dev/blog/whiteui-gumroad-to-lemonsqueezy</guid>
      <pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate>
      <description>The 4 November 2024 post quotes a Gumroad email about PayPal. Buyers keep old files on Gumroad. Lemon Squeezy&apos;s docs can import products, customers, and license keys, and they say subscriptions do not move.</description>
    </item>
    <item>
      <title>Buttondown replaced GitHub Issues with Linear and left the public roadmap on GitHub</title>
      <link>https://migratingto.dev/blog/buttondown-github-issues-to-linear</link>
      <guid>https://migratingto.dev/blog/buttondown-github-issues-to-linear</guid>
      <pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
      <description>Justin Duke announced the internal move on 30 October 2024. A 9 January 2025 stack note confirms Linear replaced GitHub Issues. Notable roadmap items stay on GitHub and sync into Linear. He never describes the importer.</description>
    </item>
    <item>
      <title>Buttondown replaced Statuspage and PagerDuty with Better Stack</title>
      <link>https://migratingto.dev/blog/buttondown-statuspage-to-better-stack</link>
      <guid>https://migratingto.dev/blog/buttondown-statuspage-to-better-stack</guid>
      <pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
      <description>Justin Duke&apos;s 9 January 2025 stack note. Better Stack, already their logging tool, replaced PagerDuty and Statuspage for alerting. The page is one sentence on that cutover, and it warns that the list may be stale.</description>
    </item>
    <item>
      <title>CodePen left MySQL 5.6 for PostgreSQL instead of upgrading in place</title>
      <link>https://migratingto.dev/blog/codepen-mysql-to-postgresql</link>
      <guid>https://migratingto.dev/blog/codepen-mysql-to-postgresql</guid>
      <pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
      <description>CodePen Radio 351, 20 January 2022. Alex Vazquez and Chris Coyier describe a move to PostgreSQL 13.3 with about a minute of read-only mode. AWS DMS kept MySQL and PostgreSQL in sync. Elasticsearch was a reason, not a finished removal.</description>
    </item>
    <item>
      <title>Coyote left HubSpot CRM for Salesforce after teams could not share a customer view</title>
      <link>https://migratingto.dev/blog/coyote-hubspot-to-salesforce</link>
      <guid>https://migratingto.dev/blog/coyote-hubspot-to-salesforce</guid>
      <pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
      <description>A Think RevOps interview with Oliver Durham-Winch, Coyote&apos;s global head of sales. OKRs came first. Then HubSpot CRM data moved to Salesforce, with HubSpot, Intercom, and Productboard connected. The 3 to 4 hours is his line.</description>
    </item>
    <item>
      <title>Leaving Google Docs for Obsidian because Drive search missed the notes</title>
      <link>https://migratingto.dev/blog/google-docs-to-obsidian-search</link>
      <guid>https://migratingto.dev/blog/google-docs-to-obsidian-search</guid>
      <pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
      <description>A 16 June 2024 post, updated 10 June 2026. Technical notes moved to local Markdown, synced with the Obsidian Git plugin to a private GitHub repo. The page says to migrate only what you need, and it skips the exporter.</description>
    </item>
    <item>
      <title>A cybersecurity firm kept HubSpot Marketing while moving CRM to Salesforce</title>
      <link>https://migratingto.dev/blog/modelit-hubspot-to-salesforce</link>
      <guid>https://migratingto.dev/blog/modelit-hubspot-to-salesforce</guid>
      <pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
      <description>Modelit&apos;s 2023 case study. An unnamed North American cybersecurity company left HubSpot&apos;s free CRM for Salesforce and kept Marketing Hub. Export limits and different tables drove the manual work. No record counts or dollar figures.</description>
    </item>
    <item>
      <title>Nylas left Jenkins because SOC 2 blocked third-party CI</title>
      <link>https://migratingto.dev/blog/nylas-jenkins-to-github-actions</link>
      <guid>https://migratingto.dev/blog/nylas-jenkins-to-github-actions</guid>
      <pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
      <description>Nylas published the move on 22 July 2020. A few weeks later, pull-request tests were 30% faster and some weeks had zero build failures. The title calls that a deployment-time cut.</description>
    </item>
    <item>
      <title>Slack used GitHub&apos;s importer plus an intern tool on 242 Jenkins pipelines</title>
      <link>https://migratingto.dev/blog/slack-jenkins-to-github-actions</link>
      <guid>https://migratingto.dev/blog/slack-jenkins-to-github-actions</guid>
      <pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
      <description>Emmanuel Zerefa&apos;s December 2024 intern post covers 242 pipelines on three Jenkins instances. The importer fully converted about half. The 1,300 hours saved is a model, not a finished measurement.</description>
    </item>
    <item>
      <title>Teamdash moved about 200 tenant databases off MySQL for pgvector</title>
      <link>https://migratingto.dev/blog/teamdash-mysql-to-postgresql</link>
      <guid>https://migratingto.dev/blog/teamdash-mysql-to-postgresql</guid>
      <pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
      <description>Karl-Sander Erss, 28 September 2023. Teamdash left MySQL on Amazon RDS because vector search was missing. nmig moved about 200 databases in a four-hour window. Boolean columns mis-typed as integers showed up in production.</description>
    </item>
    <item>
      <title>Zealot dual-ran Amplitude and PostHog until Amplitude missed events</title>
      <link>https://migratingto.dev/blog/zealot-amplitude-to-posthog</link>
      <guid>https://migratingto.dev/blog/zealot-amplitude-to-posthog</guid>
      <pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
      <description>PostHog&apos;s 2 April 2025 interview with Zealot CTO Brandon Jakobson. They ran both analytics tools, then deleted Amplitude and BugSnag in one pull request. No historical import is described.</description>
    </item>
    <item>
      <title>Axolo left Heroku for DigitalOcean App Platform and inherited double crons</title>
      <link>https://migratingto.dev/blog/axolo-heroku-to-digitalocean</link>
      <guid>https://migratingto.dev/blog/axolo-heroku-to-digitalocean</guid>
      <pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate>
      <description>Sydney Cohen moved a Node backend in two days. DNS took about 15 minutes on a Saturday. NODE_ENV stayed on Staging for a day, and EasyCron plus leftover Heroku jobs pinged users twice. The $560 versus $65 table is his forecast against the new bill.</description>
    </item>
    <item>
      <title>balena shut down Jenkins after four weeks of GitHub Actions callers</title>
      <link>https://migratingto.dev/blog/balena-jenkins-to-github-actions</link>
      <guid>https://migratingto.dev/blog/balena-jenkins-to-github-actions</guid>
      <pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate>
      <description>The balenaOS team moved build, test, and deploy off a plugin-heavy Jenkins. Hardware-in-the-loop tests now take about one third of the time. External contributors can read the logs. This is a first-party post from 30 January 2025.</description>
    </item>
    <item>
      <title>Repos moved to GitHub while SonarQube stayed bound to Bitbucket</title>
      <link>https://migratingto.dev/blog/bitbucket-to-github-sonarqube-binding</link>
      <guid>https://migratingto.dev/blog/bitbucket-to-github-sonarqube-binding</guid>
      <pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate>
      <description>Brian&apos;s team left Bitbucket for GitHub. The git remotes moved. SonarQube Cloud stayed on the old workspace until a GitHub owner rebound the org and every project.</description>
    </item>
    <item>
      <title>A content team could not move a multi-year Trello board without losing comments</title>
      <link>https://migratingto.dev/blog/content-team-trello-to-asana</link>
      <guid>https://migratingto.dev/blog/content-team-trello-to-asana</guid>
      <pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate>
      <description>Sarah Yeung&apos;s team tried Trello&apos;s CSV and four other exporters. Comments, attachments, and subtasks stayed behind. Unito would not import history. Altosio came through with gaps.</description>
    </item>
    <item>
      <title>Easy Eatery left SendGrid after shared IPs landed on block lists</title>
      <link>https://migratingto.dev/blog/easy-eatery-sendgrid-to-postmark</link>
      <guid>https://migratingto.dev/blog/easy-eatery-sendgrid-to-postmark</guid>
      <pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate>
      <description>Paul Dean&apos;s booking product saw Hotmail, Live, and Outlook rejects from SendGrid shared IPs. Less than 2% of mail failed. Detection to Postmark took under 48 hours. This post is thin on DNS.</description>
    </item>
    <item>
      <title>FreeAgent moved a 58,000-test Rails suite off Jenkins</title>
      <link>https://migratingto.dev/blog/freeagent-jenkins-to-github-actions</link>
      <guid>https://migratingto.dev/blog/freeagent-jenkins-to-github-actions</guid>
      <pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate>
      <description>Daniel Holz wrote the why in June 2022. p95 deploys dropped from 25 minutes to 16. Test-infra spend fell about 90%. Part 2, the how, was never published. A later Dev Platform post confirms the move stuck.</description>
    </item>
    <item>
      <title>A LastPass to 1Password move in 25 minutes after a broken export</title>
      <link>https://migratingto.dev/blog/lastpass-to-1password-broken-export</link>
      <guid>https://migratingto.dev/blog/lastpass-to-1password-broken-export</guid>
      <pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate>
      <description>After the LastPass breach, a CSV backup rendered most passwords in the browser. 1Password imported categories as tags in 25 minutes, then asked for the LastPass email, password, and 2FA.</description>
    </item>
    <item>
      <title>Leaving LastPass after 10 years and missing notes search</title>
      <link>https://migratingto.dev/blog/lastpass-to-1password-notes-search</link>
      <guid>https://migratingto.dev/blog/lastpass-to-1password-notes-search</guid>
      <pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate>
      <description>After the 2022 breach he moved a decade of LastPass folders into 1Password vaults and tags. Archive and family sharing got better. Notes search, outside-family shares, and form-data save did not come with him.</description>
    </item>
    <item>
      <title>Mighty Networks members export cleanly and courses do not</title>
      <link>https://migratingto.dev/blog/mighty-networks-to-circle-community-move</link>
      <guid>https://migratingto.dev/blog/mighty-networks-to-circle-community-move</guid>
      <pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate>
      <description>A Circle consultant who has moved dozens of clients says Mighty Networks member data exports cleanly, courses need rebuilding, and a thorough move takes two to three weeks. This is a consultant summary, not one named company&apos;s dump.</description>
    </item>
    <item>
      <title>A course site bounced from Elastic Email through SendGrid to Postmark in hours</title>
      <link>https://migratingto.dev/blog/sendgrid-to-postmark-same-day</link>
      <guid>https://migratingto.dev/blog/sendgrid-to-postmark-same-day</guid>
      <pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate>
      <description>A Teachable course was moving to WordPress. Shared IPs failed twice. Cloudflare DNS plus WP Mail SMTP landed on Postmark the same day. About 300 to 400 signups a day could not wait for a warmup.</description>
    </item>
    <item>
      <title>Cloudflare flattening is not a portable CNAME</title>
      <link>https://migratingto.dev/blog/cloudflare-dns-to-route-53-flattening</link>
      <guid>https://migratingto.dev/blog/cloudflare-dns-to-route-53-flattening</guid>
      <pubDate>Fri, 30 Oct 2026 00:00:00 GMT</pubDate>
      <description>He exported a BIND zone, dropped SOA and NS, and watched Route 53 reject the apex CNAME. Registrar transfer and a leftover DNSSEC key were the rest of the DNS move.</description>
    </item>
    <item>
      <title>A finance platform left Chargebee and rebuilt checkout in Stripe Billing</title>
      <link>https://migratingto.dev/blog/dataart-chargebee-to-stripe-billing</link>
      <guid>https://migratingto.dev/blog/dataart-chargebee-to-stripe-billing</guid>
      <pubDate>Fri, 30 Oct 2026 00:00:00 GMT</pubDate>
      <description>DataArt moved an unnamed trading-indicators product off Chargebee. Customers and live subscription state went to Stripe. PayPal and Coinbase needed a custom checkout. This is a vendor case study.</description>
    </item>
    <item>
      <title>Dovetail Games moved 71,000 Freshdesk tickets into Zendesk</title>
      <link>https://migratingto.dev/blog/dovetail-freshdesk-to-zendesk</link>
      <guid>https://migratingto.dev/blog/dovetail-freshdesk-to-zendesk</guid>
      <pubDate>Fri, 30 Oct 2026 00:00:00 GMT</pubDate>
      <description>Help Desk Migration published a Freshdesk-to-Zendesk PDF for Dovetail Games. Tickets, contacts, and articles are listed as moved. A separate help-center write-up shows why article HTML is a different job. This is a vendor case study.</description>
    </item>
    <item>
      <title>3,481 Evernote notes exported after the official export failed</title>
      <link>https://migratingto.dev/blog/evernote-to-obsidian-3481-notes</link>
      <guid>https://migratingto.dev/blog/evernote-to-obsidian-3481-notes</guid>
      <pubDate>Fri, 30 Oct 2026 00:00:00 GMT</pubDate>
      <description>evernote-backup plus Obsidian Importer moved 28 notebooks. MFA needed OAuth. A rate limit paused the sync for half an hour. A 3,000-note notebook broke the desktop export.</description>
    </item>
    <item>
      <title>Leaving Firebase for Appwrite without the password hashes</title>
      <link>https://migratingto.dev/blog/firebase-to-appwrite-password-hashes</link>
      <guid>https://migratingto.dev/blog/firebase-to-appwrite-password-hashes</guid>
      <pubDate>Fri, 30 Oct 2026 00:00:00 GMT</pubDate>
      <description>He moved a product off Firestore after lock-in and read costs started to hurt. The SDKs looked familiar. Auth still needed resets or a lazy migration, and Storage needed a custom script.</description>
    </item>
    <item>
      <title>An Intercom-to-Zendesk move succeeded and then lost snooze</title>
      <link>https://migratingto.dev/blog/intercom-to-zendesk-missing-snooze</link>
      <guid>https://migratingto.dev/blog/intercom-to-zendesk-missing-snooze</guid>
      <pubDate>Fri, 30 Oct 2026 00:00:00 GMT</pubDate>
      <description>Andy38&apos;s team moved support off Intercom. Ticket history can travel. Native snooze does not, and deferred work sat in the open queue.</description>
    </item>
    <item>
      <title>Prime Time Palm Beach County replaced 140 in-person signatures</title>
      <link>https://migratingto.dev/blog/prime-time-docusign-to-dropbox-sign</link>
      <guid>https://migratingto.dev/blog/prime-time-docusign-to-dropbox-sign</guid>
      <pubDate>Fri, 30 Oct 2026 00:00:00 GMT</pubDate>
      <description>Paola Cedeno&apos;s team left DocuSign for Dropbox Sign so MOUs, RFPs, and W-9s could be templates with reminders. The Dropbox story does not describe a historical envelope import. This is a vendor case study.</description>
    </item>
    <item>
      <title>A decade of Evernote notes needed a custom exporter before Obsidian</title>
      <link>https://migratingto.dev/blog/software-that-matters-evernote-to-obsidian</link>
      <guid>https://migratingto.dev/blog/software-that-matters-evernote-to-obsidian</guid>
      <pubDate>Fri, 30 Oct 2026 00:00:00 GMT</pubDate>
      <description>Peter Quiel left Evernote after the Linux client died. Official ENEX import capped out at 50 or 100 notes. He wrote an exporter, then used Obsidian&apos;s Importer.</description>
    </item>
    <item>
      <title>A 1,000-note Evernote archive moved to Notion in minutes</title>
      <link>https://migratingto.dev/blog/thousand-text-notes-evernote-to-notion</link>
      <guid>https://migratingto.dev/blog/thousand-text-notes-evernote-to-notion</guid>
      <pubDate>Fri, 30 Oct 2026 00:00:00 GMT</pubDate>
      <description>週休3日サラリーマン used Notion&apos;s Evernote importer on a text-only vault. Five minutes of clicks, about ten minutes of waiting. Empty lines disappeared. Do not copy this timing onto attachments or huge notebooks.</description>
    </item>
    <item>
      <title>The Unicorn Advisory left Teachable after sales pages and support stalled</title>
      <link>https://migratingto.dev/blog/unicorn-advisory-teachable-to-kajabi</link>
      <guid>https://migratingto.dev/blog/unicorn-advisory-teachable-to-kajabi</guid>
      <pubDate>Fri, 30 Oct 2026 00:00:00 GMT</pubDate>
      <description>She copied Business 101 onto Kajabi by hand. Teachable hosted the course. Kajabi won on pages, live chat, and later email and the site. This is a first-person affiliate post from 2019.</description>
    </item>
    <item>
      <title>4ocean left BigCommerce and went back to Shopify</title>
      <link>https://migratingto.dev/blog/4ocean-bigcommerce-to-shopify</link>
      <guid>https://migratingto.dev/blog/4ocean-bigcommerce-to-shopify</guid>
      <pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate>
      <description>Alex Schulze moved 4ocean back to Shopify after a BigCommerce migration cost organic traffic and turned everyday merchandising into custom work. The public write-up is a Shopify case study.</description>
    </item>
    <item>
      <title>Workleap moved acquired Barley from Google Workspace to Microsoft 365</title>
      <link>https://migratingto.dev/blog/barley-google-workspace-to-microsoft-365</link>
      <guid>https://migratingto.dev/blog/barley-google-workspace-to-microsoft-365</guid>
      <pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate>
      <description>ShareGate&apos;s parent used its own tool to move Barley off Google after the acquisition. Files took two hours and mail about three, after days of mapping. This is a vendor case study of the vendor&apos;s own product.</description>
    </item>
    <item>
      <title>Blue Vanilla left WooCommerce maintenance for Shopify Plus</title>
      <link>https://migratingto.dev/blog/blue-vanilla-woocommerce-to-shopify</link>
      <guid>https://migratingto.dev/blog/blue-vanilla-woocommerce-to-shopify</guid>
      <pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate>
      <description>Lucy Colgrave moved a London fashion store off a slow WordPress and WooCommerce stack. Swanky rebuilt it on Shopify Plus. Page load and bounce improved in the first weeks. This is an agency case study from 2019.</description>
    </item>
    <item>
      <title>Community Sauna rebuilt support while leaving Zendesk for Intercom</title>
      <link>https://migratingto.dev/blog/community-sauna-zendesk-to-intercom</link>
      <guid>https://migratingto.dev/blog/community-sauna-zendesk-to-intercom</guid>
      <pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate>
      <description>SupportYourApp moved Community Sauna Baths off Zendesk onto Intercom and rebuilt inboxes, automations, and a chatbot. The 97% faster-response claim is the vendor&apos;s. This is an implementer case study.</description>
    </item>
    <item>
      <title>Companio moved 56 people to Zoho because Google hit €1,000 a month</title>
      <link>https://migratingto.dev/blog/companio-google-workspace-to-zoho</link>
      <guid>https://migratingto.dev/blog/companio-google-workspace-to-zoho</guid>
      <pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate>
      <description>Ignacio Nieto Carvajal left Google Workspace for Zoho Workplace to cut a pay-per-user bill. He says Zoho is worse and still worth it. The post is about cost, not the mailbox copy.</description>
    </item>
    <item>
      <title>An eight-user company ran Google and Zoho in parallel for ten days</title>
      <link>https://migratingto.dev/blog/eight-user-google-workspace-to-zoho</link>
      <guid>https://migratingto.dev/blog/eight-user-google-workspace-to-zoho</guid>
      <pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate>
      <description>Mo Alhabal moved Digital Era Hub from Google Workspace to Zoho Workplace in about ten days. Shared Drive permissions dropped. Calendar free/busy surprised him. YouTube and Business Profile needed a week-long wait.</description>
    </item>
    <item>
      <title>A healthcare SaaS moved 906,000 Mixpanel events and left PHI behind</title>
      <link>https://migratingto.dev/blog/healthcare-saas-mixpanel-to-posthog</link>
      <guid>https://migratingto.dev/blog/healthcare-saas-mixpanel-to-posthog</guid>
      <pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate>
      <description>ProductQuant audited four years of Mixpanel data for an unnamed healthcare forms platform, excluded events with patient identifiers, and used PostHog&apos;s managed import. This is a consultant case study.</description>
    </item>
    <item>
      <title>Lemon Press moved bilingual financial newsletters off Mailchimp</title>
      <link>https://migratingto.dev/blog/lemon-press-mailchimp-to-beehiiv</link>
      <guid>https://migratingto.dev/blog/lemon-press-mailchimp-to-beehiiv</guid>
      <pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate>
      <description>A 16-person Mongolia newsroom left Mailchimp for Beehiiv after send volume pushed them into extra costs. The public write-up is a vendor case study. It says little about the actual import.</description>
    </item>
    <item>
      <title>National Mattress copied a dead Mailchimp list into Klaviyo and opened at 3.2%</title>
      <link>https://migratingto.dev/blog/national-mattress-mailchimp-to-klaviyo</link>
      <guid>https://migratingto.dev/blog/national-mattress-mailchimp-to-klaviyo</guid>
      <pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate>
      <description>Northern moved National Mattress from Mailchimp to Klaviyo after a two-year sending gap. The list came over. The sending reputation did not. This is an agency case study.</description>
    </item>
    <item>
      <title>VIP Supply Co. left Shopify for B2B company accounts and price lists</title>
      <link>https://migratingto.dev/blog/vip-supply-shopify-to-bigcommerce</link>
      <guid>https://migratingto.dev/blog/vip-supply-shopify-to-bigcommerce</guid>
      <pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate>
      <description>Jay Earley moved a restaurant-supply catalog off Shopify because one company could not have many buyers. Access Solutions rebuilt the store on BigCommerce B2B Edition in four months. This is a vendor case study.</description>
    </item>
    <item>
      <title>CloudSpot moved 700TB and 120 million images off S3</title>
      <link>https://migratingto.dev/blog/cloudspot-amazon-s3-to-backblaze-b2</link>
      <guid>https://migratingto.dev/blog/cloudspot-amazon-s3-to-backblaze-b2</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate>
      <description>Gavin Wade copied CloudSpot&apos;s galleries from Amazon S3 to Backblaze B2 with Flexify.IO. The public write-up is a vendor case study. New uploads stayed on S3 until a one-day catch-up.</description>
    </item>
    <item>
      <title>Nodecraft moved 23TB off S3 in seven hours</title>
      <link>https://migratingto.dev/blog/nodecraft-amazon-s3-to-backblaze-b2</link>
      <guid>https://migratingto.dev/blog/nodecraft-amazon-s3-to-backblaze-b2</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate>
      <description>James Ross copied game save-states from Amazon S3 to Backblaze B2 with Python, shell, and the two APIs. The public write-up is a vendor case study. Cloudflare stayed in front, which is where the egress saving came from.</description>
    </item>
    <item>
      <title>A QuickBooks to Xero review after a full year</title>
      <link>https://migratingto.dev/blog/quickbooks-to-xero-one-year</link>
      <guid>https://migratingto.dev/blog/quickbooks-to-xero-one-year</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate>
      <description>2022 finished on QuickBooks Online. Xero went live on 1 January 2023, and QBO stayed for a month. Bank rules cut three-account reconciliation from hours to about five minutes.</description>
    </item>
    <item>
      <title>Netlify plugins do not travel with the repo</title>
      <link>https://migratingto.dev/blog/netlify-to-cloudflare-plugins</link>
      <guid>https://migratingto.dev/blog/netlify-to-cloudflare-plugins</guid>
      <pubDate>Tue, 27 Oct 2026 00:00:00 GMT</pubDate>
      <description>He connected the Eleventy repo to Cloudflare Pages in minutes, then spent hours rebuilding Critical CSS, Plausible snippets, headers, and redirects that lived in the Netlify dashboard.</description>
    </item>
    <item>
      <title>Leaving Netlify because GitHub-user pricing did not fit</title>
      <link>https://migratingto.dev/blog/netlify-to-vercel-per-user-pricing</link>
      <guid>https://migratingto.dev/blog/netlify-to-vercel-per-user-pricing</guid>
      <pubDate>Tue, 27 Oct 2026 00:00:00 GMT</pubDate>
      <description>A working Astro site left Netlify over per-GitHub-user pricing, then left Vercel four months later when per-seat cost showed up there too.</description>
    </item>
    <item>
      <title>Pagecord moved Rails Active Storage from S3 to Cloudflare R2</title>
      <link>https://migratingto.dev/blog/pagecord-amazon-s3-to-cloudflare-r2</link>
      <guid>https://migratingto.dev/blog/pagecord-amazon-s3-to-cloudflare-r2</guid>
      <pubDate>Tue, 27 Oct 2026 00:00:00 GMT</pubDate>
      <description>Olly Headey copied Pagecord off S3 with Super Slurper, turned on incremental fetch for new objects, and pointed Active Storage at an R2 endpoint plus storage.pagecord.com.</description>
    </item>
    <item>
      <title>A Rails API hosting bill cut from about $20 to $6</title>
      <link>https://migratingto.dev/blog/heroku-to-railway-rails-bill</link>
      <guid>https://migratingto.dev/blog/heroku-to-railway-rails-bill</guid>
      <pubDate>Mon, 26 Oct 2026 00:00:00 GMT</pubDate>
      <description>He streamed JawsDB MySQL into Railway in 20 to 30 minutes, pointed Rails at MYSQL_URL, and treated the 70 percent cut as a side-project number, not a production forecast.</description>
    </item>
    <item>
      <title>A Hugo blog moved to Cloudflare Pages for Japan latency</title>
      <link>https://migratingto.dev/blog/netlify-to-cloudflare-hugo-japan</link>
      <guid>https://migratingto.dev/blog/netlify-to-cloudflare-hugo-japan</guid>
      <pubDate>Mon, 26 Oct 2026 00:00:00 GMT</pubDate>
      <description>He followed Cloudflare&apos;s Netlify guide, pinned HUGO_VERSION, and swapped Netlify&apos;s $URL for $CF_PAGES_URL. The speed he felt came mostly from caching fonts, not from the host swap.</description>
    </item>
    <item>
      <title>Saarza left MongoDB when relationships started leaking</title>
      <link>https://migratingto.dev/blog/saarza-mongodb-to-postgresql</link>
      <guid>https://migratingto.dev/blog/saarza-mongodb-to-postgresql</guid>
      <pubDate>Mon, 26 Oct 2026 00:00:00 GMT</pubDate>
      <description>Saarza&apos;s own blog says schemaless MongoDB left orphaned invoices on their SaaS platforms. They moved to PostgreSQL and Drizzle so foreign keys could reject a delete that still had children.</description>
    </item>
    <item>
      <title>Traffic jumped after leaving Google Analytics for Plausible</title>
      <link>https://migratingto.dev/blog/google-analytics-to-plausible-traffic-jump</link>
      <guid>https://migratingto.dev/blog/google-analytics-to-plausible-traffic-jump</guid>
      <pubDate>Sun, 25 Oct 2026 00:00:00 GMT</pubDate>
      <description>He dual-ran Plausible next to Google Analytics on freshman.tech. Page views came in 30 to 40 percent higher, which he blamed on ad blockers hitting the GA script.</description>
    </item>
    <item>
      <title>A Swift Vapor app left Heroku, and Redis stayed behind</title>
      <link>https://migratingto.dev/blog/heroku-to-fly-io-vapor-redis</link>
      <guid>https://migratingto.dev/blog/heroku-to-fly-io-vapor-redis</guid>
      <pubDate>Sun, 25 Oct 2026 00:00:00 GMT</pubDate>
      <description>After Heroku killed the free tier, a Vapor app moved to Fly.io, fly.toml was rebuilt, and the Heroku Redis cache was replaced only later.</description>
    </item>
    <item>
      <title>Numeric Citizen replaced Google Analytics after a 30-day Plausible trial</title>
      <link>https://migratingto.dev/blog/numeric-citizen-google-analytics-to-plausible</link>
      <guid>https://migratingto.dev/blog/numeric-citizen-google-analytics-to-plausible</guid>
      <pubDate>Sun, 25 Oct 2026 00:00:00 GMT</pubDate>
      <description>JF Martin left Google Analytics on two blogs after a 30-day Plausible trial, paid $4 a month, and cancelled the Databox dashboards that sat on top of GA.</description>
    </item>
    <item>
      <title>Axiom flipped its public community from Slack to Discord</title>
      <link>https://migratingto.dev/blog/axiom-slack-to-discord</link>
      <guid>https://migratingto.dev/blog/axiom-slack-to-discord</guid>
      <pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate>
      <description>Alan Pope gave users a month&apos;s notice, then shut Slack. Discord&apos;s member count passed Slack in two months. This is Axiom&apos;s own post, not a vendor page.</description>
    </item>
    <item>
      <title>Corsearch spent most of its Microsoft-to-Slack budget on change management</title>
      <link>https://migratingto.dev/blog/corsearch-microsoft-teams-to-slack</link>
      <guid>https://migratingto.dev/blog/corsearch-microsoft-teams-to-slack</guid>
      <pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate>
      <description>John Mazotis moved Corsearch off Microsoft onto Google Workspace and Slack in three months. Copying files was easy. Teaching people to leave channels was the hard part.</description>
    </item>
    <item>
      <title>Euna Solutions moved Slack to Teams in two weeks</title>
      <link>https://migratingto.dev/blog/euna-slack-to-microsoft-teams</link>
      <guid>https://migratingto.dev/blog/euna-slack-to-microsoft-teams</guid>
      <pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate>
      <description>BITSUMMIT says it moved 500-plus people, 200-plus channels, and about 1 TB off Slack in two weeks. This is a vendor case study. Microsoft&apos;s own tool still skips DMs.</description>
    </item>
    <item>
      <title>Leaving ActiveCampaign for Kit after the price jumped</title>
      <link>https://migratingto.dev/blog/activecampaign-to-kit-price-jump</link>
      <guid>https://migratingto.dev/blog/activecampaign-to-kit-price-jump</guid>
      <pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate>
      <description>She left ActiveCampaign Lite after a $28 monthly hike, used ConvertKit&apos;s free migration team, and said the switch saved $56 a month versus the new ActiveCampaign bill.</description>
    </item>
    <item>
      <title>18 Medium posts moved to self-hosted Ghost</title>
      <link>https://migratingto.dev/blog/medium-to-ghost-eighteen-posts</link>
      <guid>https://migratingto.dev/blog/medium-to-ghost-eighteen-posts</guid>
      <pubDate>Thu, 22 Oct 2026 00:00:00 GMT</pubDate>
      <description>He pasted Medium&apos;s HTML export into Ghost on AWS Lightsail, rehosted the images, and flipped DNS after testing one Cloudflare bulk redirect.</description>
    </item>
    <item>
      <title>Leaving Ghost for Astro in about a day</title>
      <link>https://migratingto.dev/blog/ghost-to-astro-one-day</link>
      <guid>https://migratingto.dev/blog/ghost-to-astro-one-day</guid>
      <pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate>
      <description>He exported Ghost, converted posts to Markdown, rebuilt the site in Astro and Tailwind, and shipped it to Cloudflare Pages. Redirects took more time than the export.</description>
    </item>
    <item>
      <title>A new Ghost site, with the WordPress blog kept as an archive</title>
      <link>https://migratingto.dev/blog/wordpress-to-ghost-kept-archive</link>
      <guid>https://migratingto.dev/blog/wordpress-to-ghost-kept-archive</guid>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
      <description>He tried a full WordPress import, then left the old site live. New writing lives on Ghost Pro as Studio6 at nevillehobson.io.</description>
    </item>
    <item>
      <title>Mirroring 15 years of WordPress before converting it to Astro</title>
      <link>https://migratingto.dev/blog/wordpress-to-astro-fifteen-years</link>
      <guid>https://migratingto.dev/blog/wordpress-to-astro-fifteen-years</guid>
      <pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate>
      <description>He kept a wget copy of the live site, exported Markdown with Jekyll Exporter, and rebuilt the blog as static Astro on Azure&apos;s free tier. The exporter needed cleanup, and plugin features had to be rewritten.</description>
    </item>
    <item>
      <title>A 10-year WordPress blog moved into local Markdown and Astro</title>
      <link>https://migratingto.dev/blog/wordpress-to-astro-ten-year-blog</link>
      <guid>https://migratingto.dev/blog/wordpress-to-astro-ten-year-blog</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
      <description>A server move felt like too much work for a mostly static site. He converted hundreds of posts and pages to repo Markdown, kept the old URLs, and cached HTML at Cloudflare.</description>
    </item>
    <item>
      <title>Oscar Health left one of the world&apos;s most complex Jira instances</title>
      <link>https://migratingto.dev/blog/oscar-health-jira-to-linear</link>
      <guid>https://migratingto.dev/blog/oscar-health-jira-to-linear</guid>
      <pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate>
      <description>Pete Zalewski moved 600+ people from a maxed-out Jira instance to Linear in just over a month. The public write-up is a vendor case study. They imported history and left custom fields behind.</description>
    </item>
    <item>
      <title>ReadMe left Heroku for Render with about 90 seconds of downtime</title>
      <link>https://migratingto.dev/blog/readme-heroku-to-render</link>
      <guid>https://migratingto.dev/blog/readme-heroku-to-render</guid>
      <pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate>
      <description>Ryan Park moved an eight-year Heroku estate onto Render. The public write-up is a vendor interview. Hard downtime was the MongoDB primary promotion in Oregon.</description>
    </item>
    <item>
      <title>Fingers moved from Substack to Beehiiv in 90 minutes</title>
      <link>https://migratingto.dev/blog/fingers-substack-to-beehiiv</link>
      <guid>https://migratingto.dev/blog/fingers-substack-to-beehiiv</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description>Dave Infante took the paid list and most of a four-year archive. He left comments, some galleries, and more than 2,000 silent free addresses behind.</description>
    </item>
    <item>
      <title>Leaving Substack for Ghost and paying more than expected</title>
      <link>https://migratingto.dev/blog/substack-to-ghost-higher-cost</link>
      <guid>https://migratingto.dev/blog/substack-to-ghost-higher-cost</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <description>They moved Amplify Respect onto Ghost Pro after a self-hosted detour, kept the custom domain, and left comments on Substack because those do not come across.</description>
    </item>
    <item>
      <title>Curating Evernote into Obsidian instead of dumping 12,000 notes</title>
      <link>https://migratingto.dev/blog/evernote-to-obsidian-curated-notes</link>
      <guid>https://migratingto.dev/blog/evernote-to-obsidian-curated-notes</guid>
      <pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate>
      <description>He copied frequent notes and keepers by hand, moved the rest only when he needed them, and kept Evernote as a fallback until a later archive export.</description>
    </item>
    <item>
      <title>Spring Framework moved 15 years of Jira issues to GitHub</title>
      <link>https://migratingto.dev/blog/spring-framework-jira-to-github-issues</link>
      <guid>https://migratingto.dev/blog/spring-framework-jira-to-github-issues</guid>
      <pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate>
      <description>Rossen Stoyanchev imported 17,000 Jira issues into GitHub. Markup conversion hurt, and the import API emailed millions of people before GitHub support cut notifications off.</description>
    </item>
    <item>
      <title>UnwindHR moved from Firebase to Supabase</title>
      <link>https://migratingto.dev/blog/unwindhr-firebase-to-supabase</link>
      <guid>https://migratingto.dev/blog/unwindhr-firebase-to-supabase</guid>
      <pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate>
      <description>Joe Ashwell took UnwindHR offline for a weekend, rebuilt the data model in Postgres, and left Firebase after nested reads and lock-in started to hurt.</description>
    </item>
  </channel>
</rss>
