Shopify Developers Updates & Release Notes

Follow

291 updates curated from 298 sources by the Releasebot Team. Last updated: Aug 19, 2026

Get this feed:
  • Aug 19, 2026
    • Date parsed from source:
      Aug 19, 2026
    • First seen by Releasebot:
      Aug 19, 2026
    Shopify logo

    Shopify Developers by Shopify

    App intents on admin.app.intent.link now open as a full-page navigation

    Shopify Developers now supports full-page navigation for Sidekick app intents using admin.app.intent.link, bringing merchant actions into the app’s own page and layout. The new behavior is live for all shops, with a modal fallback only when unsaved changes are present.

    What changed

    When Sidekick invokes an app intent declared on the admin.app.intent.link extension target, the Shopify admin now navigates the merchant to your extension's url as a full page, matching how Shopify's own admin intents behave. Previously, the same intent always opened in an overlay on top of the page the merchant was already on. This is live for all shops, isn't gated by API version, and doesn't require any changes to your extension's configuration, intent schema, or tools. Extensions that use the admin.app.intent.render target aren't affected.

    App intents support different presentations. Until now, every app intent appeared as an intent modal, an overlay on top of the merchant's current page that kept them in the Sidekick flow. admin.app.intent.link intents now use a full-page navigation instead, which brings app intents in line with how admin intents, the intents that launch Shopify-native editors, are already presented. It also matches the documented behavior of the target, which navigates the merchant to a URL in your app for actions that work best on a page you already render. For implementation details, see Use extensions to surface app actions.

    There's one case where the overlay is still used: if the merchant has unsaved changes on their current page, the intent opens in a modal instead of navigating away, so their in-progress work isn't lost. Your extension doesn't need to handle these cases differently — the same route, payload, and tools are used in both presentations.

    The contract between Sidekick and your app is unchanged. Your route still reads the invocation payload from shopify.intents.request.value, a live signal that's null when your app isn't running inside an intent workflow and updates whenever an intent is invoked. You still register tool handlers with shopify.tools.register from the route the url opens, and you still resolve the intent with shopify.intents.response.ok(), shopify.intents.response.error(), or shopify.intents.response.closed().

    Note

    Extensions that target admin.app.intent.render currently render inline as an overlay, so a UI extension app action behaves the same as before.

    If you noticed this change before this post and reported it as a regression, the new behavior is expected. The type, target, and url on your extension continue to work as declared.

    Who's affected

    This applies to apps with an admin_link extension whose targeting includes admin.app.intent.link. It applies on every API version and every store, and there's no feature flag, scope, or setting to opt in or out.

    These aren't affected:

    • Extensions targeting admin.app.intent.render.
    • Admin intents your app invokes with intents.invoke() to launch Shopify-native editors. Those are a separate system and their presentation hasn't changed.
    • Apps that don't declare app intents.

    If your app declares both targets, only the admin.app.intent.link intents change.

    Why this matters

    Merchants now land on the real page in your app, at the URL you declared, with your own layout and navigation instead of a constrained overlay. For the actions admin.app.intent.link is designed for, the merchant now works directly on the page your app already renders.

    What to do

    No action is required to keep your extension working. The declaration this change affects is the admin.app.intent.link target in your shopify.extension.toml :

    [[extensions.targeting]]
    target = "admin.app.intent.link"
    url = "/app/campaigns/{id}/edit"
    tools = "./tools.json"
    instructions = "./instructions.md"
    

    This example shows a typical admin.app.intent.link configuration: the target, the route the admin opens, and the files that define tools and instructions. You don't need to change this structure for the new behavior.

    If your app has no extension with that target, nothing changes for you. If it does, verify that the route behind url works as a standalone page:

    • Confirm the route renders correctly at full width. Layout that assumed a narrow overlay may need adjusting. The route should also still render correctly in a modal, since that's the presentation merchants with unsaved changes will see.
    • Confirm the route reads the invocation payload from shopify.intents.request.value. Because it's a live signal, you can also subscribe to it to react when the request changes.
    • Confirm the route calls shopify.tools.register when it mounts, so Sidekick can invoke your tools while the merchant is on the page.
    • Confirm you resolve the intent when the merchant finishes, fails, or cancels.
    • Test in a development store with shopify app dev, then ask Sidekick to perform the action.

    You'll know the update worked when the admin navigates to your declared url with your schema's values substituted into the path rather than a literal {id}, your tools respond while the page is open, and Sidekick reports the result after you resolve the intent. To see the modal fallback, start editing a form in the admin and invoke the action before saving.

    Related docs

    • Build Sidekick app extensions
    • Intents API reference
    • Tools API reference
    Original source
  • Aug 18, 2026
    • Date parsed from source:
      Aug 18, 2026
    • First seen by Releasebot:
      Aug 19, 2026
    Shopify logo

    Shopify Developers by Shopify

    Hydrogen developer preview update: August 18, 2026

    Shopify Developers adds new Hydrogen developer preview capabilities for storefront builds, including cart session attribution, cart attributes, standard page view events, faster Shop Pay button rendering, local HTTPS for Customer Account testing, and pluggable logging.

    The Hydrogen developer preview adds new capabilities to the toolkit and extends the ways developers can build Shopify storefronts:

    • Cart session attribution: Carts and Customer Account sessions stay in step, so signed-in shoppers reach checkout with their saved details instead of a guest flow.
    • Cart attributes: Attach order-wide data like gift messages to the cart, and per-line data like engraving text to the lines it belongs to.
    • Standard page view events: Hydrogen storefronts used to report only the first page load, leaving client-side navigations invisible to analytics and performance tooling. Every navigation now emits a page view, matching how liquid themes report events.
    • Shop Pay button without shop-js: The button used to render blank until Shopify's hosted script loaded. Hydrogen now renders it directly, so it shows up styled and clickable right away, before any JavaScript runs.
    • Local HTTPS for Customer Account development: Test login flows on a trusted local hostname, without a tunnel or hand-rolled certificates.
    • Pluggable logging: Set how much Hydrogen logs and forward warnings and errors to your own observability tooling.

    To get started, visit the Hydrogen developer preview documentation. For a detailed breakdown of this release, read the full release notes.

    Original source
  • All of your release notes in one feed

    Join Releasebot and get updates from Shopify and hundreds of other software products.

    Create account
  • Aug 10, 2026
    • Date parsed from source:
      Aug 10, 2026
    • First seen by Releasebot:
      Aug 11, 2026
    Shopify logo

    Shopify Developers by Shopify

    Shop Campaigns performance data now available via ShopifyQL

    Shopify Developers adds shop_campaign_insights in ShopifyQL, expanding analytics apps with Shop Campaigns performance data and new Analytics Web Components and Annotations API for richer merchant reporting and chart insights.

    The shop_campaign_insights schema is now available in the ShopifyQL. Analytics and reporting apps can query Shop Campaigns performance data on behalf of authorized merchants using the existing shopifyql Query field with read_reports scope.

    Available data

    Campaign-level and segment-level metrics including ad spend, sales, orders, ROAS, average order value, and average customer acquisition cost. Data is available by campaign name, customer segment, and time dimensions from hourly to yearly in the merchant's shop timezone.

    How to get started

    Query shop_campaign_insights using the same shopifyql Query field you use for other ShopifyQL schemas. No new scopes or integration work required if you already query ShopifyQL.

    • Schema reference: shop_campaign_insights
    • Building with ShopifyQL
    • ShopifyQL API reference

    Also new: Analytics Web Components let you embed Shop Campaigns metrics directly in your app UI using with no data storage required. The Analytics Annotations API lets you create annotations on merchant analytics charts (e.g., "campaign started," "budget changed").

    Original source
  • Aug 6, 2026
    • Date parsed from source:
      Aug 6, 2026
    • First seen by Releasebot:
      Aug 7, 2026
    Shopify logo

    Shopify Developers by Shopify

    Standard storefront events and actions now support cart attributes

    Shopify Developers adds cart attribute updates to the standard Cart action and introduces a new shopify:cart:attributes-update event, giving apps immediate cart change awareness and rollback support when updates are declined.

    The update Cart standard action now updates cart attributes, and a new shopify:cart:attributes-update event fires whenever an attributes update is initiated.

    Before this, changing an attribute meant calling the Storefront API yourself, and nothing told your app when one changed. The action now handles attributes like any other cart update, and the event fires whether your app, the theme, or another app made the change. It carries the full new set of attributes and a promise for the result, so you can update your UI right away and roll it back if the cart declines the change.

    Learn more in the event reference and the updated update Cart reference.

    Original source
  • Aug 5, 2026
    • Date parsed from source:
      Aug 5, 2026
    • First seen by Releasebot:
      Aug 19, 2026
    Shopify logo

    Shopify Developers by Shopify

    Draft order and transfer/shipment inventory is moving from reserved to committed

    Shopify Developers moves in-progress inventory holds from reserved to committed for draft orders, transfers, and shipments, aligning inventory reporting with order inventory. available and on_hand stay unchanged, and existing queries keep working.

    We're consolidating how in-progress inventory holds are represented. Inventory that was previously tracked under the reserved quantity state for draft orders, transfers, and shipments is being moved to the committed quantity state.

    This change aligns these holds with how order inventory is already represented, so that committed reflects all inventory that is spoken for but not yet fulfilled.

    What's changing

    • For draft orders, transfers, and shipments, quantities that previously appeared under reserved will now appear under committed.
    • This is a one-time data migration that applies only to active draft orders and open transfers/shipments that are still holding inventory when the change runs.
    • Completed, cancelled, or already-released holds are not modified, because they no longer hold reserved inventory.

    What's not changing

    • available and on_hand quantities are unaffected. Total inventory is unchanged, and quantities are only moving between two “unavailable” buckets.
    • Both reserved and committed remain valid, queryable quantity names. No fields are removed or renamed.
    • Sellable inventory (available) is not affected, so this does not change what buyers can purchase.

    What you may need to do

    • If your app reads InventoryLevel.quantities(names: ["reserved"]), expect reserved values to decrease for affected shops, with a corresponding increase in committed.
    • If you currently rely on reserved to detect draft-order or transfer/shipment holds specifically, you should read committed instead going forward.
    • No code changes are required to keep existing queries working; only the values shift between the two states.

    Reporting note

    Merchants using inventory adjustment reports (for example, reports that break out adjustments by inventory state) will see reserved values migrate to committed, plus a one-time correction entry when the migration runs. This correction only covers active draft orders and open transfers/shipments at the time of migration. on_hand and available totals are unchanged, and historical data before the migration remains as-is.

    Related docs

    • InventoryLevel — the quantities(names: [...]) field: https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryLevel
    • InventoryQuantity — the object returned per name: https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryQuantity
    Original source
  • Similar to Shopify Developers with recent updates:

  • Aug 5, 2026
    • Date parsed from source:
      Aug 5, 2026
    • First seen by Releasebot:
      Aug 6, 2026
    Shopify logo

    Shopify Developers by Shopify

    WebMCP support for Liquid and Hydrogen storefronts

    Shopify Developers introduces WebMCP tools for online stores, letting AI agents search catalogs, manage carts, and proceed to checkout in a shopper’s live tab session. The tools are live on Liquid storefronts and the Hydrogen developer preview with no setup required.

    Online stores now expose WebMCP tools that AI agents can call. Agents can search your catalog, manage the shopper's cart, and go to checkout on the shopper's behalf, all in the tab they're looking at.

    The tools work through WebMCP, a proposed web standard that lets a page register tools with the browser. Without it, agents have to read every page's code and simulate clicks, which is slow and error-prone. The tools are live today on every Liquid storefront and on the Hydrogen developer preview. There's nothing to install or configure.

    Everything an agent does happens on the shopper's live session. Cart tools call the same standard storefront actions that apps use, so if your theme opens a cart drawer on updates, agents trigger it too.

    Here's what agents can call:

    • Catalog: search_catalog, browse_store, get_product, and show_variant
    • Cart: get_cart, update_cart, and cancel_cart
    • Checkout and orders: proceed_to_checkout and manage_orders
    • Other content: search_shop_policies_and_faqs

    WebMCP is still an emerging standard, and agent support is currently limited to Chromium-based browsers through an origin trial. Shopify is helping shape the specification alongside Google and Microsoft.

    Learn more in the WebMCP docs. If you're building your own agent, see Build commerce agents.

    Original source
  • Aug 3, 2026
    • Date parsed from source:
      Aug 3, 2026
    • First seen by Releasebot:
      Aug 6, 2026
    Shopify logo

    Shopify Developers by Shopify

    The orderCreate mutation now supports multiple tracking numbers for each fulfillment

    Shopify Developers adds a trackingNumbers field to OrderCreateFulfillmentInput, making it easier to import orders with multiple package tracking numbers in one step. The update lets developers include all tracking info upfront and keeps existing integrations working as expected.

    We’ve added a trackingNumbers field to OrderCreateFulfillmentInput, so you can attach multiple tracking numbers to a fulfillment when importing orders.

    If you use the orderCreate mutation to import orders that ship in more than one package, you no longer need to update the fulfillment after creation to add additional tracking numbers. Instead, you can include all tracking numbers upfront when you create the order.

    Use the trackingNumbers field to pass an array of tracking number strings, for example:

    trackingNumbers: ["1Z999AA10123456784", "1Z999AA10123456785"]
    

    The trackingCompany value you provide applies to every tracking number in the array. This behavior is consistent with how FulfillmentTrackingInput already works on the fulfillmentCreate mutation.

    If you provide both the singular trackingNumber and the plural trackingNumbers, the singular value takes precedence. In that case, the value of trackingNumber is used and trackingNumbers is ignored. This ensures that your existing integrations continue to work without any changes.

    This field is available starting in API version 2026-10.

    Learn more

    • orderCreate mutation reference
    • OrderCreateFulfillmentInput
    • Manage fulfillments
    Original source
  • Aug 3, 2026
    • Date parsed from source:
      Aug 3, 2026
    • First seen by Releasebot:
      Aug 4, 2026
    Shopify logo

    Shopify Developers by Shopify

    Oxygen is now available on development stores

    Shopify Developers now lets dev stores deploy Hydrogen storefronts to Oxygen, expanding hosting access.

    You can now deploy Hydrogen storefronts to Oxygen from dev stores. Previously, Oxygen hosting required a paid plan.

    Note that development stores don't include public environments, so deployment URLs always require a store login.

    Learn more about supported plans.

    Original source
  • Aug 1, 2026
    • Date parsed from source:
      Aug 1, 2026
    • First seen by Releasebot:
      Aug 2, 2026
    Shopify logo

    Shopify Developers by Shopify

    Updated Built for Shopify requirements for Fulfillment services apps

    Shopify Developers updates Built for Shopify requirements for fulfillment services apps, adjusting completion and response thresholds to better match real-world operations and help more high-quality apps qualify.

    We've updated three Built for Shopify requirements for Fulfillment services apps. The updated thresholds better reflect how fulfillment operations run in practice, making Built for Shopify achievable for more high-quality fulfillment apps. No action is required.

    What changed

    • 5.8.2 Complete fulfillment orders: adjusted the required completion rate for assigned fulfillment orders.
    • 5.8.6 Respond to fulfillment requests: extended the response window and adjusted the required response rate.
    • 5.8.7 Respond to cancellation requests: extended the response window.

    How these criteria are measured is otherwise unchanged. The requirements page linked above lists the current thresholds.

    Who's affected

    Apps in the Fulfillment services category, such as third-party logistics and warehousing apps, that hold or are working toward Built for Shopify status. Apps in other categories aren't affected, and no other Built for Shopify requirements have changed.

    What to do

    No action is required. Built for Shopify status is evaluated automatically against these criteria. If your fulfillment app previously fell short of these requirements, you may now qualify.

    Related docs

    • Build for fulfillment services
    • Built for Shopify overview
    Original source
  • Jul 31, 2026
    • Date parsed from source:
      Jul 31, 2026
    • First seen by Releasebot:
      Aug 2, 2026
    Shopify logo

    Shopify Developers by Shopify

    New fields for cash management activities and drawers in POS

    Shopify Developers adds new GraphQL Admin API cash management fields, giving merchants more visibility into cash drawer balances and cash count activity details for opening and closing counts.

    New fields are now available on cash management resources in the GraphQL Admin API, providing more detail about cash drawer balances and cash count activities.

    What's new

    Cash Drawer balance

    The Cash Drawer object now exposes the current drawer balance directly:

    Field | Description
    balance | The current balance in the cash drawer, returned as a Money V2 value.

    Cash count activity details

    Cash Count Activity now includes additional context about opening and closing counts:

    Field | Description
    note | A note associated with the activity, such as a comment left by staff during a cash count.
    reason Code | The reason code for the activity, connecting counts to merchant-defined categorization.

    Learn more

    • New retail cash management capabilities (2026-04)
    Original source
  • Jul 31, 2026
    • Date parsed from source:
      Jul 31, 2026
    • First seen by Releasebot:
      Aug 1, 2026
    Shopify logo

    Shopify Developers by Shopify

    Hydrogen developer preview update: July 30, 2026

    Shopify Developers adds new Hydrogen developer preview capabilities for building storefronts, including Vue bindings, GraphQL TypeScript tooling, Shopify Scripts analytics and consent setup, Shopify Inbox support, and Suspense cart reads to keep React storefronts fast and cacheable.

    The Hydrogen developer preview adds new capabilities to the toolkit and extends the ways developers can build Shopify storefronts:

    • Vue bindings: Build your storefront in Vue with the same Hydrogen APIs you know from React, through the new @shopify/hydrogen/vue entrypoint.
    • GraphQL TypeScript tooling: Query autocomplete and type checking for both Shopify APIs now ship with the package.
    • Analytics and consent through ShopifyScripts: Storefront analytics and consent management now set up with the rest of your Shopify scripts, including support for Shopify's privacy banner.
    • Shopify Inbox support: Shoppers can chat with your store's AI agent and get handed off to your staff, right from your Hydrogen storefront.
    • Suspense cart reads in React: The cart can stream in after the page renders, so your app shell stays fast and cacheable.

    To get started, visit the Hydrogen developer preview documentation. For a detailed breakdown of this release, read the full release notes.

    Original source
  • Jul 30, 2026
    • Date parsed from source:
      Jul 30, 2026
    • First seen by Releasebot:
      Aug 1, 2026
    Shopify logo

    Shopify Developers by Shopify

    The shopify-account component for customer accounts is now a Theme Store requirement

    Shopify Developers adds the shopify-account component for storefront sign-in and account management, with passwordless, social, and Sign in with Shop support. New and updated Theme Store themes must include it, while legacy customer accounts are deprecated.

    In February 2026, we introduced the shopify-account component, which lets customers sign in and manage their account directly on the storefront. It supports passwordless sign-in, automatic Sign in with Shop recognition, and social sign-in providers. Once signed in, customers can reach their account pages from the account menu.

    As of today, all new themes and updates to existing themes submitted to the Shopify Theme Store must include the component in their header, visible on both desktop and mobile, so customers get a consistent experience on any device.

    Additionally, legacy customer accounts have been deprecated, and themes are no longer required to include legacy customer account template files.

    Learn more:

    • shopify-account component developer docs
    • Theme store requirements — features
    • Legacy customer accounts are deprecated
    Original source
  • Jul 30, 2026
    • Date parsed from source:
      Jul 30, 2026
    • First seen by Releasebot:
      Jul 31, 2026
    Shopify logo

    Shopify Developers by Shopify

    Merchants now see partner details on collaborator requests

    Shopify Developers adds more merchant context to new collaborator requests, showing partner organization details in Shopify admin and email. Merchants can now see how long the org has been on Shopify, registration and request countries, and an active collaboration range to help review access with confidence.

    What changed

    Collaborator access is built on trust. When a merchant approves a request, they're giving a partner access to a live store — and merchants need enough context to make that decision with confidence. Building on identity verification for partners, merchants now see details about your partner organization on every new collaborator request. Here's what partners need to know.

    When you send a collaborator request, merchants will see details about your partner organization directly in the request — both in the Shopify admin and in the collaborator request email. These details include:

    • How long your partner organization has been on Shopify
    • The country where your partner account was registered
    • The country the request was sent from
    • An approximate range of merchant stores your organization is actively collaborating with

    These details are generated automatically from your partner organization's account and activity — there's nothing to fill out, configure, or maintain. The active collaborations count only includes merchant stores on a paid plan, so development stores don't affect it.

    If your organization is newer to Shopify, merchants will see that too. That’s not a penalty — it’s context. Every partner starts somewhere, and a clear, specific request goes a long way while your track record is still growing.

    This change only applies to new collaborator requests. Requests that merchants have already accepted aren't affected.

    Why this matters

    Previously, merchants reviewing a collaborator request had little to go on beyond the partner's name and message. Some bad actors are trying to exploit that gap and social-engineer their way into real merchant stores using collaborator accounts. That hurts merchants directly, and it creates an uneven playing field for partners who do great work.

    Showing verifiable details on every request gives merchants meaningful signal before they grant access — and lets your track record speak for itself.

    What to do

    Nothing is required to enable this feature — these details appear automatically, and there's nothing to fill out or maintain. However, as you send collaborator requests, the following practices will help merchants say yes with confidence:

    • Complete identity verification in your Dev Dashboard if you haven't already. Learn more here.
    • Write a clear, specific request that explains who you are, what you'll be working on, and why you need access.
    • Request only the permissions you need. Narrow, well-scoped requests are easier for merchants to review and approve.

    Collaborator requests should be an easy yes for merchants working with trustworthy partners. These changes are designed to help you demonstrate that trust and make approvals more straightforward.

    Related docs

    • Collaborator requests: Information shared with merchants
    Original source
  • Jul 30, 2026
    • Date parsed from source:
      Jul 30, 2026
    • First seen by Releasebot:
      Jul 31, 2026
    Shopify logo

    Shopify Developers by Shopify

    createdAt is now available on the Customer object in Shopify Functions

    Shopify Developers adds a `createdAt` field to the Customer object in Shopify Functions API 2026-10, giving Functions access to when a customer account was created for custom logic. The update is additive and supports signed-in buyers while preserving guest buyer handling.

    Shopify Functions API version 2026-10 adds a createdAt field to the Customer object. You can now use the date and time a customer account was created in Function logic. This is an additive change; no action is required for existing Functions.

    What changed

    The Customer object now exposes createdAt, which returns the date and time when the customer account was created. This lets you build customizations based on when a customer joined.

    To use createdAt, request it from the customer on Cart.buyerIdentity in the Function input query:

    query
    Input {
      cart {
        buyerIdentity {
          customer {
            createdAt
          }
        }
      }
    }
    

    The customer is available only when the buyer is signed in. Functions should continue to handle guest buyers, where buyerIdentity or customer might be null or omitted.

    Earlier Shopify Functions API versions are unchanged. To use the new field:

    • Update the Function to API version 2026-10.
    • Add createdAt to the Function’s input query.
    • Test with both signed-in and guest buyers.

    Related docs

    • Shopify Functions API reference
    • Shopify Functions input queries
    Original source
  • Jul 30, 2026
    • Date parsed from source:
      Jul 30, 2026
    • First seen by Releasebot:
      Jul 31, 2026
    Shopify logo

    Shopify Developers by Shopify

    Updating an order's shipping address now recalculates taxes

    Shopify Developers now supports recalculating taxes when a shipping address is changed on an unfulfilled order through the Admin GraphQL Update mutation, keeping totals aligned with the destination and notifying orders/edited webhook subscribers when recalculation occurs.

    As of August 31, 2026, changing the shipping address on an unfulfilled order through the order Update GraphQL mutation recalculates the order's taxes against the new destination. Previously, order Update saved the new address but left the original tax lines unchanged, so the order's totals no longer matched the destination it was shipping to.

    Why it matters

    The order's financial data is now corrected as part of the update, now totals stay accurate to the shipping destination. After updating a shipping address, query the order to read the updated tax Lines, total Tax Set, and totals, as you would for any other order edit. You don't need to make any changes to adopt this.

    How it works

    This change applies to all Admin GraphQL API versions. Taxes are recalculated only when the change is safe to apply, not on every address update. The address change always succeeds; only the tax recalculation is conditional.

    Taxes aren't recalculated when:

    • The order is partially fulfilled: On entirely unfulfilled orders, taxes are recalculated. On partially fulfilled orders, the address is saved but taxes are left unchanged, because some units have already shipped to the original destination, and recalculating the whole order against the new address would apply the new destination's tax to units that didn't ship there, producing totals that don't match what was actually fulfilled.
    • The order can't be edited: Recalculation runs through order editing, so the same order-editing considerations apply. When an order isn't eligible for editing, the address is saved but taxes aren't recalculated.

    Subscribers to the orders/edited webhook receive a notification when an address change results in a tax recalculation.

    To learn more, see the order Update mutation.

    Original source
Releasebot

Curated by the Releasebot team

Releasebot is an aggregator of official product update announcements from hundreds of software vendors and thousands of sources.

Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.