Background revalidation, simplified resource config, and new permission and mutation hooks

Published: August 25, 2026

v3.0.0

App SDK v3

v3 is a major release of the App SDK. The project and organization hooks now revalidate their data in the background, several long-deprecated APIs are removed, and agent, comlink, and dashboard utilities moved to dedicated entry points. For apps that don't touch those areas, this is a one-line upgrade:

Otherwise, work through the App SDK v2 to v3 migration guide.

Breaking changes

  • Project and organization hooks revalidate in the background. useProject, useProjects, useOrganization, and useOrganizations now return {data, isFetching, error, refetch} instead of the raw value. Fetched data stays fresh for 30 seconds, then refetches in the background, and a failed background refetch surfaces through the hook's error property instead of your error boundary.
  • Agent, comlink, and dashboard utilities moved to dedicated entry points. Agent functions now live in @sanity/sdk/agent, comlink utilities in @sanity/sdk/comlink, and dashboard hooks in @sanity/sdk-react/dashboard, where useDashboardOrganizationId is now useOrganizationId and useDashboardNavigate is now useNavigate.
  • Deprecated APIs are removed. This includes the source, sourceName, and sources options (use resource, resourceName, and the resources prop), the Source-suffixed resource types (use their Resource counterparts), getPreviewState and resolvePreview (use getProjectionState and resolveProjection), the studioMode, ValidProjection, sanityConfigs, and ProjectWithoutMembers names, and a set of internal helpers that were never intended for use outside the SDK's React layer. The migration guide lists each replacement.
  • Child instances are gone. useSanityInstance no longer accepts a config argument, and SanityInstance.getParent(), createChild(), and match() are removed. Pass an explicit resource to individual operations; the singular resource option on SanityConfig now works as the instance's default.
Loading...