Talk Shop
Home
Learn More
About Us
Follow Us
Blog
Tools
Newsletter
Join Discord
Join

Community

  • Developers
  • Growth
  • Entrepreneurs
  • Support
  • Experts
  • Tools

Location

123 Mars, Crater City, Red Planet

(WiFi may be spotty)

Hours

Who has time for breaks? We're here 24/7!

Contact

hello@letstalkshop.com

Talk Shop
Talk Shop

Built for real builders. Not affiliated with Shopify Inc.

Home
Privacy
Terms
  1. Home
  2. >Blog
  3. >Theme Design
  4. >Shopify Horizon Theme Migration Guide (2026)
Theme Design15 min read

Shopify Horizon Theme Migration Guide (2026)

Step-by-step playbook for migrating from Dawn to Shopify Horizon in 2026 — including pre-migration audit, preserving custom Liquid, reinstalling apps, QA, and rollback.

Talk Shop

Talk Shop

Apr 22, 2026

Shopify Horizon Theme Migration Guide (2026)

In this article

  • What Horizon Actually Is (and Why Dawn Is on Its Way Out)
  • Horizon vs Dawn: What Actually Changed Under the Hood
  • Pick the Right Horizon Preset for Your Brand
  • Pre-Migration Audit: The Checklist to Run Before You Click Install
  • Step-by-Step Migration Workflow
  • Preserving Custom Liquid: What Ports and What Doesn't
  • Apps That Break During Horizon Migrations (and What to Do)
  • The QA Checklist You Run Before Publishing
  • Your Rollback Plan (Because Hope Is Not a Strategy)
  • Using Claude Code, Dev MCP, and Theme Check to Speed Up Migration
  • Common Mistakes That Sink Horizon Migrations
  • Timing, Budget, and When to Hire Help
  • Ship It, Then Iterate

What Horizon Actually Is (and Why Dawn Is on Its Way Out)

If you logged into your Shopify admin this spring and saw a big green banner urging you to "Try Horizon," you are not alone — and you are not imagining the pressure. Horizon is Shopify's new default theme system, introduced at Shopify Editions Summer '25 and promoted to the flagship slot with the Winter '26 release. It is not a fresh paint job on Dawn. It is a different architecture, a different block model, and a different mental model for how merchants build pages.

The Shopify Horizon theme migration guide below walks you through exactly how to move a live Dawn store to Horizon without losing your custom sections, breaking your apps, or tanking your Core Web Vitals on launch day. Horizon ships as a family of presets — the base Horizon preset plus siblings like Ritual, Fabric, Vessel, Atelier, Tinker, Savor, Heritage, Dwell, and Pitch — each tuned for a different category of merchant. You can read Shopify's full theme catalog on the Horizon themes collection.

Before you click "Install," understand the trade-off: Horizon unlocks nested blocks, AI-assisted layouts, and a vastly more flexible editor, but there is no automatic migration path from Dawn. Every template, section, and customization has to be rebuilt or re-mapped. This guide shows you how to do that without a rollback panic on Monday morning.

Horizon vs Dawn: What Actually Changed Under the Hood

Two phones displaying different Shopify product page layouts.

Dawn was Shopify's reference implementation for Online Store 2.0. Horizon is the reference implementation for what Shopify calls the "theme blocks" era — and the differences go deep. If you only know Dawn, three changes will surprise you.

1. Blocks are first-class, and they nest up to eight levels deep. In Dawn, a section held a flat list of blocks. In Horizon, any block can contain other blocks, which means a "Product card" block can hold an "Image" block, a "Group" block, and a "Rating" block — all configurable in the editor. Shopify's theme architecture docs explain the mechanics: JSON templates can render up to 25 sections, each section can hold up to 50 blocks, and blocks can now contain other blocks.

2. JSON templates replace almost everything. Horizon leans heavily on .json templates stored in templates/ rather than hard-coded .liquid page layouts. Each template is a data file listing sections and their settings, rendered at runtime. This is the same approach documented in Shopify's JSON templates reference, but Horizon pushes it further: even the header and footer are now block-driven groups.

3. App blocks are the supported integration surface. Dawn stores often patched in app functionality via Liquid snippets. Horizon expects apps to inject UI via @app blocks inside sections. If a theme section doesn't include "blocks": [{ "type": "@app" }], merchants cannot drop that app into the editor. Jonny Taft's developer breakdown of Horizon is one of the clearest third-party reads on how this reshapes app compatibility.

The practical consequence: your Dawn setup does not "port" to Horizon. You are rebuilding, not upgrading. If you want more background on the old architecture before you leave it behind, our theme design category archive covers how we got here.

Pick the Right Horizon Preset for Your Brand

Horizon ships as ten presets, and they are not interchangeable. Picking the wrong sibling means you will fight the theme instead of leveraging it.

PresetBest ForSignature Feature
Horizon (base)Generalists, first migrationsBalanced defaults, widest app compatibility
FabricApparel, lifestyle, photo-heavy catalogsEdge-to-edge image grids, swatch galleries
RitualBeauty, luxury, editorial brandsMagazine-style hero layouts, bold typography
VesselHome goods, wellness, minimalistCalm whitespace, product-centric composition
AtelierPremium accessories, craftsHandmade-feel type pairings
TinkerDIY, tools, maker brandsDense product listings, high-info density
SavorFood, beverage, CPGWarm palette, storytelling blocks
HeritageLegacy brands, long-form storytellingRich editorial templates
DwellFurniture, interiorLarge-format room shots
PitchBold DTC launchesHigh-contrast, conversion-focused

Don't pick based on screenshots alone. Install two or three presets to a development store, drop your real product images in, and compare how they render on mobile. The Shopify Horizon preset page lets you preview each variant with demo data.

Treat Preset Selection as a Strategy Decision

Your preset choice shapes every future section you build. Ritual and Fabric assume hero imagery and editorial pacing; Tinker assumes grids and specs. Switching presets mid-project means re-doing block trees — budget for it now. If your brand strategy is still fuzzy, our business strategy resources can help you lock positioning before you commit a theme.

Pre-Migration Audit: The Checklist to Run Before You Click Install

Monitor showing Shopify admin theme upload interface.

The biggest mistake merchants make is installing Horizon first and auditing later. Flip that order. Spend a day auditing your current Dawn setup before you touch anything.

Run through this audit on the live Dawn theme:

  • Inventory every template. Open the code editor and list every file in templates/, sections/, snippets/, and blocks/. Note which are unmodified Dawn defaults and which contain custom Liquid.
  • Screenshot every live page. Home, all collection templates, all product templates, cart, blog, article, page templates, 404. These are your visual regression reference.
  • Export section settings. In the theme editor, every section has JSON settings behind it. Download the theme as a ZIP from admin > Themes > Actions > Download theme file — this is your source-of-truth backup.
  • List every installed app. Note which apps inject via theme embeds, app blocks, or direct Liquid edits. Direct-edit apps are your highest risk.
  • Audit custom Liquid snippets. Anything in snippets/ that is not a Dawn default is custom code you wrote or a developer wrote. Label each one with its purpose.
  • Record metaobject and metafield usage. Horizon handles metafields differently in block settings — you need the list so nothing gets orphaned.
  • Save analytics baselines. Capture LCP, CLS, conversion rate, bounce rate, and AOV for the 30 days pre-migration so you can detect regressions.

This audit takes four to eight hours. Skipping it is why so many Horizon migrations end with "wait, where did our reviews section go?" on day three.

Step-by-Step Migration Workflow

Here is the sequence that works. Do not improvise the order — each step protects the next.

StepActionEnvironmentWhy It Matters
1Duplicate your live Dawn themeProduction adminCreates your rollback target
2Spin up a development storeShopify PartnersNever test Horizon on prod first
3Install base Horizon preset on dev storeDev storeClean slate for rebuild
4Import products, collections, metafieldsDev storeReal data exposes real issues
5Rebuild templates section by sectionDev storeManual, but deliberate
6Reinstall apps and verify app blocksDev storeCatch compatibility breaks early
7Port custom Liquid into Horizon block filesDev storeNew file paths, new patterns
8Run full QA checklistDev storeSee QA section below
9Export Horizon theme as ZIPDev storeYour migration artifact
10Upload Horizon ZIP to production as unpublished themeProductionFinal staging
11Publish during low-traffic windowProductionMinimize blast radius
12Monitor analytics for 72 hoursProductionCatch silent regressions

The critical detail is step 2. Shopify's Dawn to Horizon migration thread is full of merchants who tested on their live store and discovered mid-rebuild that Shopify had silently cached customer-facing assets. Use a dev store.

Install and Preview Locally with Shopify CLI

Before you rebuild in the web editor, consider pulling Horizon locally. Install the Shopify CLI (@shopify/cli plus @shopify/theme), then run shopify theme dev --store your-dev-store.myshopify.com to get hot-reloading preview on localhost. The Shopify CLI theme commands docs cover the full flag set. Local development lets you use Git, run diffs between Dawn and Horizon, and script repetitive edits.

Preserving Custom Liquid: What Ports and What Doesn't

Code editing on laptop with abstract code schematic overlay.

Custom Liquid is where migrations get expensive. Here is the honest breakdown.

Code that ports with minor edits:

  • Pure Liquid in snippets/ that doesn't reference Dawn-specific section settings
  • assets/*.css that targets generic classes (you will want to refactor to Horizon's CSS custom properties eventually, but it works)
  • assets/*.js for analytics, tracking, and non-theme-coupled logic
  • Custom pages built with page.custom.json templates

Code that needs rewriting:

  • Sections that assume Dawn's {% section 'section-name' %} imports
  • Snippets that read Dawn-specific settings like section.settings.enable_quick_add
  • Liquid that hardcodes Dawn's class names or BEM patterns
  • Anything that manipulates Dawn's <predictive-search> or <quantity-input> custom elements

Code that must be rebuilt as blocks:

  • Any custom section with more than two or three fields — Horizon expects these to be blocks, not monolithic sections
  • Anything that was "almost an app" — multi-step forms, configurators, bundle builders

For a refresher on the upgrade-safe pattern before you rewrite, Shopify Growth Services' guide to safely customizing Horizon lays it out clearly: put custom code in new files with unique names in blocks/ or sections/, never overwrite Horizon defaults, and use custom template JSON files instead of modifying product.json.

Our guide to customizing Shopify themes without breaking design walks through the upgrade-safe mindset in more detail and applies directly to Horizon.

Apps That Break During Horizon Migrations (and What to Do)

Tablet showing app alert in Shopify theme editor.

Not every app survives the jump. From the community forums and our own migration work, here is the pattern.

Apps that just work: Klaviyo, Gorgias, Judge.me, Stamped, most official Shopify apps. These use app blocks and theme embeds and re-inject cleanly.

Apps that need manual re-embedding: Privy, older versions of Bold Upsell, many review apps that predate theme embeds. You will need to open the Horizon theme editor, find the right section, and add the app block manually.

Apps that break: Anything that patched theme.liquid directly, anything that injected a custom <script> into layout/theme.liquid via the old "edit code" flow, any subscription app still on the pre-2022 integration pattern.

When an app breaks:

  1. Check the app's support center for "Horizon compatibility" or "theme blocks migration" notes.
  2. Uninstall and reinstall — many apps now auto-detect Horizon and swap their embed target.
  3. If the app still breaks, open a ticket and ask specifically: "Does your app ship an @app block compatible with Online Store 2.0 theme blocks architecture?"
  4. If the answer is no, replace the app. A broken app on your store is worse than switching vendors.

Before you start reinstalling, tidy up. Browse our apps and integrations coverage for prompts on dropping apps you don't need before you rebuild.

The QA Checklist You Run Before Publishing

Do not publish Horizon to production until every item below is green. Print this and check it off.

Template coverage:

  • Home renders correctly on desktop, tablet, mobile
  • Every collection template (default + custom) displays the right products
  • Every product template (default + custom) shows media, variants, price, description
  • Cart page, cart drawer, mini-cart all function
  • Checkout link works (Shopify-hosted, but verify the handoff)
  • Blog index and article templates render
  • Search results page works with predictive search
  • 404 page is branded
  • Password page (if used) matches brand

Functional:

  • Add to cart from collection page
  • Add to cart from product page with variants
  • Cart quantity updates trigger correctly
  • Discount codes apply
  • Gift cards render and redeem
  • Free shipping bar or upsell app displays
  • Newsletter signup submits
  • All navigation menu links resolve

Performance:

  • Lighthouse mobile score at or above 70 for home, collection, product
  • LCP under 2.5s on 4G throttle
  • CLS under 0.1
  • No console errors on any template

Integrations:

  • GA4 and GTM fire page_view on every template
  • Klaviyo (or your ESP) signup captures email
  • Review widgets render product reviews
  • Search & Discovery app (if used) returns correct results
  • Shopify Inbox / chat widget loads

Accessibility:

  • Keyboard tab order is sensible
  • Color contrast meets WCAG AA
  • Alt text on all hero and product images
  • Focus outlines visible on interactive elements

Run shopify theme check . against your local copy before uploading. The Theme Check commands docs list every rule — fix errors, then warnings, then suggestions.

Your Rollback Plan (Because Hope Is Not a Strategy)

Migrations fail. Plan for it.

Your rollback plan needs three components:

1. A known-good Dawn theme sitting unpublished in your admin. This is why step 1 of the migration workflow is "duplicate your live Dawn theme." Never delete it. The Shopify Help Center's guide to theme versions covers how to manage unpublished themes.

2. A documented switch-back procedure. Write it down before launch day. The procedure is literally: admin > Themes > find "Dawn backup" > Actions > Publish. But document who has admin access, who decides to roll back, and what metric triggers the decision (example: "checkout conversion rate drops more than 15 percent versus the 30-day pre-migration baseline").

3. A data recovery plan for any Horizon-specific content. If you built a custom landing page in Horizon using nested blocks, rolling back to Dawn means that page stops rendering. Decide upfront: do you re-create critical pages in Dawn format, or do you accept that those pages are dark until you re-publish Horizon?

Run the rollback in a dev environment once, end to end, before launch. Time it. If rollback takes more than 10 minutes, you have a problem.

Using Claude Code, Dev MCP, and Theme Check to Speed Up Migration

Laptop showing development tools next to a smartphone preview.

Migration is where AI tooling earns its keep. Three tools turn a week of manual rebuild into two or three focused days.

Shopify Dev MCP. The Shopify Dev MCP server runs locally and exposes Shopify's developer docs, GraphQL schema, and theme architecture to any MCP-compatible AI client. Plug it into Claude Code and you can ask, "Rewrite this Dawn section as a Horizon block with nested media blocks," and the model answers with current, correct syntax rather than stale training data.

Claude Code with the Shopify CLI. Claude Code can run shopify theme check, parse the output, and propose fixes. It can also read your Dawn sections/ folder, map each section to a Horizon block structure, and generate the migration diff. Our guide to using Claude Code for Shopify Liquid themes walks through the setup.

Theme Check as a migration gate. Treat Theme Check errors as blockers in your dev loop. Wire it into a Git pre-commit hook or a CI step so no untested Liquid ever touches your Horizon theme. Weaverse's Shopify AI toolkit writeup explains how Dev MCP, Cursor, and Claude Code compose in a 2026 Shopify dev workflow.

A practical prompt pattern that works: paste your Dawn section file, paste the Horizon block schema docs (copied from Dev MCP), then ask Claude to produce a Horizon-compatible block file with the same settings surface. Review the diff, run Theme Check, commit. Repeat.

Common Mistakes That Sink Horizon Migrations

These show up again and again in postmortems. Avoid them.

Mistake 1: Migrating on a Friday. Launch on Tuesday or Wednesday morning. You need two full business days to catch silent regressions before the weekend traffic spike.

Mistake 2: Skipping the dev store step. "I'll just install Horizon on prod and customize it before publishing" — this is how merchants end up with a half-built Horizon theme draft that caches weirdly and can't be cleanly rolled back.

Mistake 3: Ignoring app blocks. If you rebuild sections without declaring "blocks": [{ "type": "@app" }], merchants lose the ability to drop app content into the editor. This breaks your Klaviyo forms, your review widgets, and your upsell blocks.

Mistake 4: Forgetting metaobjects. If your Dawn store used metaobjects for things like size guides or ingredient lists, you need to remap those into Horizon's block settings. They don't auto-wire.

Mistake 5: Not capturing pre-migration analytics baselines. Without a baseline, you can't tell whether Horizon hurt conversion or whether there was just a normal Tuesday dip. Pull GA4 and Shopify analytics for the 30 days prior, save them, label them "pre-Horizon baseline."

Mistake 6: Rebuilding without a style guide. Horizon's block flexibility is a double-edged sword. Without a documented set of colors, type scales, spacing tokens, and component rules, every page drifts. Build the style guide in the theme settings first, then build pages.

Mistake 7: Leaving legacy redirects unchecked. If your Dawn theme used custom page templates with specific URL patterns, verify those URLs still resolve under Horizon. Broken redirects tank SEO within days. Our SEO resources cover the audit loop.

Timing, Budget, and When to Hire Help

Be realistic. A simple Dawn store with 50-200 SKUs, five custom sections, and 10 apps takes one developer two to three weeks to migrate properly. A complex Plus store with a custom checkout extension, 20+ apps, and heavy Liquid customization takes one to three months with a small team.

Rough budget ranges for 2026:

  • DIY with Claude Code assist: 40-80 hours of founder time
  • Freelance Shopify developer: $5,000 to $15,000
  • Shopify agency or Shopify Plus partner: $20,000 to $80,000

If your monthly revenue is over $100k and you are not confident in your Liquid skills, hire help. A botched migration costs more than a clean one. The Shopify experts network is a good starting point to find a partner who has shipped Horizon migrations.

Whether you DIY or hire, set three checkpoints: audit complete, dev store parity achieved, and pre-launch QA passed. Do not proceed past a checkpoint without sign-off.

Ship It, Then Iterate

Horizon is not the end state — it is the new starting line. Once you migrate, you inherit a theme that assumes a block-first, AI-assisted, Dev-MCP-friendly workflow. Use it. Rebuild your hero section monthly. A/B test blocks, not pages. Layer in AI-generated imagery and personalization as they become available.

The migration is the hard part. The compounding is easy once you are on the new platform.

What's blocking your Horizon migration — the dev time, the app compatibility, or the fear of breaking something on the live store? Drop into the Talk Shop community and share where you're stuck. We're tracking migration wins and losses across hundreds of stores, and your experience helps the next merchant avoid your landmines. For ongoing theme-design coverage, subscribe to our blog.

Theme DesignShopify Development
Talk Shop

About Talk Shop

The Talk Shop team — insights from our community of Shopify developers, merchants, and experts.

Related Insights

Related

Shopify Staff Permissions for Contractors (2026)

Related

Shopify Admin GraphQL Rate Limits (2026 Reference)

New

Business Name Generator

Generate unique, brandable business names with AI. Check domain availability instantly.

Generate Names

Talk Shop Daily

Daily ecommerce news, teardowns, and tactics.

No spam. Unsubscribe anytime. · Learn more

Try our Business Name Generator

Join the Best Ecommerce Newsletter
for DTC Brands

12-18 curated ecommerce stories from 100+ sources, delivered every morning in under 5 minutes. Trusted by 10,000+ operators.

No spam. Unsubscribe anytime. · Learn more

Join the Community

300+ Active

Connect with ecommerce founders, share wins, get feedback on your store, and access exclusive discussions.

Join Discord Server