Platform

Shopify DotDev 2026: what actually shipped for developers

DotDev 2026 (July 21-22, Toronto) came with three real platform shifts: Liquid-first templates, Events replacing webhooks, and native app analytics. Here's what landed, what's preview-only, and what to do about it.

Bas Lefeber

Founder, learnshopify.dev · July 27, 2026 · 6 min read

Ready to learn Shopify development?Short, interactive lessons where you write real Liquid against a live storefront and watch it change as you type. Free, and genuinely fun.

Shopify's developer event grew up this year. DotDev 2026 ran July 21 and 22 at the Automotive Building in Toronto, the first time the format stretched past a single day, and the first time it sold out. It replaces what used to be called Editions.dev.

Conference recaps are a bad way to learn what changed, though. Keynote slides describe direction; the shopify.dev changelog describes shipped code. So this post works from the changelog. Three substantial things landed on July 21 itself, a pile of smaller-but-breaking changes landed around them, and the difference between "generally available" and "developer preview" matters more this release than usual.

DotDev 2026 in three tracks. Two of the three headline shipments are developer previews, not GA.

TL;DR

Three things matter. (1) Liquid can now compose whole pages: the new {% block %} and {% partial %} tags let a .liquid template own its page structure, with no JSON template and no sections. Developer preview. (2) Events gained metafield triggers and more topics, moving closer to replacing webhooks with field-level triggers and custom GraphQL payloads. Developer preview. (3) Apps can now model, query, and embed analytics natively through ShopifyQL, with no data stack of your own. Shipping in API version 2026-10.

1. Liquid templates can compose pages now

The headline theme change, and the one that will reshape how themes are structured, is the Liquid July '26 developer preview. It adds two tags:

  • {% block 'name', param: value %}...{% endblock %} renders a theme block straight from a template. It behaves like {% render %}, except the body content between the tags is available inside the block as {{ block.content }}. Blocks compose by nesting.
  • {% partial 'name' %}...{% endpartial %} names a region of server-rendered HTML that JavaScript can refresh on its own, without a full page load and without moving rendering into a client-side framework.

Put together, page structure lives in one .liquid file that a human (or a coding agent) can read top to bottom. Shopify's own reference implementation, the skeleton theme rc-v2.0.0, has no sections folder, no JSON templates, and no schema presets at all. That is a genuinely different theme architecture, and it is worth understanding before it stops being a preview.

Do not ship this to a live theme yet

Both tags are behind a developer preview. On a storefront without it, {% partial %} raises Unknown tag 'partial'. Existing themes keep working exactly as they do today: sections, theme settings, and JSON templates are not deprecated. This is an alternative composition model, not a replacement.

2. Events took another step toward replacing webhooks

Shopify's next-generation Events are the intended successor to webhook topic subscriptions. Instead of subscribing to products/update and receiving every product change with a fixed payload you then diff, an Event subscription declares which entity you care about, which lifecycle action, which fields must change to trigger delivery, and what GraphQL shape you want back.

The July 21 update added topics for Order, Collection, InventoryItem, InventoryShipment, and Location, and, more interestingly, metafield change triggers on Product, Order, Customer, Collection, and Location. ProductVariant metafields come through the Product topic. Both $app metafields and regular metafields are supported, subject to the usual access scopes.

If your app currently subscribes to every product update purely to notice that one metafield moved, that whole category of waste is what this removes.

3. Apps got a real analytics layer

The third July 21 entry, full-stack capabilities to power app analytics, is the one most likely to delete code you already wrote. Apps can now mark metafields analytics-queryable so they become ShopifyQL dimensions, emit App Events that are queryable alongside Shopify's own commerce data, query it all through a versioned ShopifyQL API with schema-level reference docs, and embed the result with web components (<s-shopifyql-metric-card>, <s-metrics-bar>) that handle charting and locale formatting for you.

There are two enrichment APIs on top: an Annotations API so your app can mark events on a merchant's charts (needs the read_analytics_annotations and write_analytics_annotations scopes), and a Metric Targets API so merchant-set goals are readable programmatically. It lands in API version 2026-10.

What shippedStatusAffects you if...
{% block %} + {% partial %}Developer previewYou build or maintain themes
Events metafield triggers + new topicsDeveloper preview (unstable)Your app reacts to store data changes
App analytics (ShopifyQL, components, annotations)2026-10Your app shows merchants any numbers
The three headline shipments, their status, and who should care.

The quieter changes that will break something

Announcements get the attention. Deprecations get the 3am pager. These all landed in the same window and none of them were on a keynote slide:

DateChangeWhy it bites
Jul 30shopify-account component requiredIt is now a Theme Store requirement for customer accounts
Jul 24Invalid metafield queries now errorIn 2026-10, bad metafield filters return errors instead of being silently ignored
Jul 8-9Shopify App Pricing migrationThe legacy Billing API is on the way out; plans and App Events changed
Jul 6Customer Account API removalsCustomer.lastIncompleteCheckout and the Checkout types go in 2026-10
Jul 2useBuyerJourneyIntercept deprecatedCheckout UI extensions using it need a rewrite
Jun 24Storefront MCP cart tools deprecatedAgent-facing cart tooling is consolidating under UCP
July 2026 changes worth a calendar entry. Dates are changelog publication dates.

The pattern in that table is worth naming: Shopify is tightening. Queries that used to fail silently now error. Billing is consolidating. Checkout extension APIs that let you block the buyer journey imperatively are being replaced. Loose behaviour that themes and apps quietly depended on is being made explicit, which is good for the platform and briefly painful for you.

Day two: the agentic half

The second day picked up the thread from the Spring '26 Edition: the Catalog API as the discovery layer, the Universal Commerce Protocol as the transaction layer, and Shopify Functions as the way merchant checkout customisations survive when the checkout is being driven by an agent rather than a human clicking through a storefront.

None of that is new since June, but the framing sharpened. If a shopper buys through ChatGPT, Copilot, Google's AI Mode, or Gemini, your carefully built storefront is not in the loop. Your Functions still are. That is a strong argument for pushing commerce logic down into Functions rather than up into theme JavaScript, and it is the kind of architectural call that outlives whichever framework you are using this year.

When an agent buys, the theme is bypassed and Functions are not. Logic placement is now an architectural decision with teeth.

Learn this properly · free lesson

App vs theme vs Function: which tool for which job

Theme, app, or Function? It is the first question on every Shopify build and the one most often answered wrong. Work through the real decision with the tradeoffs laid out. Free, no signup.

Try this lesson — free

What to actually do this week

  1. Read the three July 21 changelog entries end to end. They are short, and they are the source of truth over any recap, including this one.
  2. Clone the skeleton theme rc-v2.0.0 branch and read templates/product.liquid. It takes two minutes and it is the clearest statement of where theme architecture is heading.
  3. Audit your app's webhook subscriptions. Every topic you subscribe to only to diff a payload is a candidate for an Event trigger once Events leaves preview.
  4. If your app ships a dashboard, price out how much of it ShopifyQL plus <s-shopifyql-metric-card> could delete before you build more of it.
  5. Put the 2026-10 removals in the table above on a calendar. Silent breakage on a version bump is the worst kind.

Read together, the release says something consistent. Structure is moving back into Liquid where it is legible. Data delivery is moving from "send everything, sort it out downstream" to "declare precisely what you need." And the buyer is increasingly not a person looking at your markup. In all three cases the mechanical work shrinks and the judgment about how a store is architected gets more valuable, which is the same shift we wrote about after Spring '26, now with a changelog behind it.

Frequently asked questions

What is Shopify DotDev?

DotDev is Shopify's developer conference, held July 21 and 22, 2026 at the Automotive Building in Toronto. It replaced the previous single-day Editions.dev format, ran across two full days for the first time, and sold out. The substantive developer announcements were published as shopify.dev changelog entries on July 21.

What was announced at Shopify DotDev 2026?

Three things landed on July 21, 2026: the Liquid July '26 developer preview adding the {% block %} and {% partial %} tags so templates can compose pages in Liquid without JSON templates or sections; metafield triggers and new topics for Events, Shopify's replacement for webhook subscriptions; and a full-stack app analytics platform built on ShopifyQL with embeddable metric-card web components, an Annotations API, and a Metric Targets API.

Are the new Liquid block and partial tags safe to use in production?

No. Both are behind the Liquid July '26 developer preview. On a storefront without the preview enabled, {% partial %} raises an Unknown tag 'partial' error. Existing sections, theme settings, and JSON templates continue to work and are not deprecated, so this is an additional composition model rather than a migration you are forced into.

Do Shopify Events replace webhooks?

That is the direction, but not yet. Events are in developer preview on the unstable API version and cover a subset of topics, so webhooks remain the right choice for production today. The difference is that an Event subscription declares field-level triggers and a custom GraphQL payload shape, so you receive only the changes you asked for instead of every resource update.

Which Shopify API version do the DotDev 2026 changes land in?

The app analytics platform targets API version 2026-10, as do several removals announced the same month, including Customer.lastIncompleteCheckout and stricter erroring on invalid metafield queries. Events is on the unstable version while in developer preview, and the Liquid block and partial tags are gated by a development-store preview rather than an API version.

Start free

Ready to become a Shopify developer?

You just read how it works. Now write it yourself: real tickets from a live store, in an editor where the storefront updates as you type. Module 1 is free, no card.

Start your first lesson

Free · No credit card · Your first win in minutes

Shopify EditionsPlatformAgentic commerceThemesapp-development

About the author

Bas Lefeber, Founder, learnshopify.dev

Bas builds learnshopify.dev, where developers learn production-grade Shopify theme development against a live storefront. He writes about Liquid, theme architecture, and the parts of the job that still matter now that AI writes the code.

Keep going in the curriculum