Installation and upgrading
Install
To initiate a new Studio without installing the CLI globally:
npm create sanity@latest
Upgrade
In most cases upgrading your studio is as straight-forward as installing the latest version:
npm install sanity@latest
For more information, visit the article on upgrading Sanity Studio in the docs.
If you are upgrading from a version earlier than 3.37.0, you also need to upgrade styled-components and @sanity/ui. To learn more, visit this help article on keeping dependencies up to date.
✨ Highlights
- Improved global search with better performance and new features.
- Custom styles are now displayed in the Portable Text Editor (PTE) style selector.
Enhanced Global Search
We've optimized the search functionality in the Studio for increased performance, especially in workspaces with large schemas. This improvement includes support for wildcard (*
) and negation (-
) tokens in search queries, allowing for more flexible and powerful search options. This enhanced search feature uses an internal API that is not yet documented for public use.
If you need to revert to the previous search behavior for any reason, you can disable the new search functionality by setting search.enableLegacySearch
to true
in your configuration.
🐛 Notable bugfixes
- Fixes a crash in the image hotspot and cropping tool within Next.js embedded Studios.
- Improves focus handling in PTE and the document pane.
- Fixes an edge case where PTE threw exceptions after resizing the validation panel.
- Fixes issue where annotations in PTE would incorrectly retain markup if all fields were null.
- Resolves an issue where custom sort orders, or sort orders in lists that are not
documentTypeList
s, would send invalid requests to the persistent user settings backend. - Fixes regression that hid tool buttons when Sanity Studio was embedded in Next.js applications.
- Fixes a bug where the caret was not visible on code-formatted text within the PTE when using the dark scheme.
- Fixes an issue where the component for custom PTE styles was not being rendered in the style selector.
- Fixes an issue where copying strikethrough text from a google doc would remove the strikethrough once pasted in the PTE.
- Fixes tooltip text for the publish button to correctly display "yesterday" without the "ago" suffix when appropriate.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Nina Andal Aarvik | fix(structure): remove 'ago' suffix when published time was yesterday (#6137) | 66495e5 |
Cody Olsen | chore: fix pnpm dev by bumping @sanity/assist (#6306)
| a87ea4e |
cngonzalez | fix: resolve PTE inconsistency by passing serverActionsEnabled to documentEvents (#6299) | 4123260 |
Espen Hovlandsdal | chore: move @sanity/export out of monorepo (#6314)
| 331e46c |
renovate[bot] | chore(lockfile): update dependency @sanity/assist to v3.0.3 (#6316) | 8941037 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.22 (#6315) | 87c627d |
renovate[bot] | chore(deps): update dependency typescript to v5.4.5 (#6318) | 166a7c6 |
Cody Olsen | chore: support IDE's using older TypeScript versions on the monorepo (#6308) | a4e097f |
Herman Wikner | fix(core): hidden caret on code formatted text (#6307) | 1c8cff0 |
shur | fix: update TelemetryUserProperties to use machinePlatform instead of platform (#6312) | bc6be95 |
Cody Olsen | chore(deps): bump @sanity/pkg-utils & simplify build scripts (#6319)
| 2dd907a |
Nina Andal Aarvik | fix(structure): remove padding prop in contextMenuButton (#6097) | b3860ed |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.19 (#6325) | a7755ac |
Cody Olsen | chore: improve test output of test:exports (#6304)
| 090c45d |
renovate[bot] | chore(lockfile): update dependency mendoza to v3.0.7 (#6324) | 4d1f1ba |
renovate[bot] | chore(deps): update dependency @portabletext/toolkit to ^2.0.15 (#6322) | 093ab19 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.23 (#6329) | b1773b9 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.13 (#6331) | 2c4671a |
Binoy Patel | chore: fix start-studio build (#6336) | e6c2d11 |
cngonzalez | fix: use pane key in settings for document lists that do not have types available (#6335) | 57749e5 |
Espen Hovlandsdal | chore: move @sanity/import out of monorepo (#6313)
| 9ea56b9 |
Espen Hovlandsdal | chore: use node: prefix for node module imports (#6321)
| 433a7aa |
Cody Olsen | fix: regression hiding tool buttons when embedded on Next.js (#6338) | d30cfd9 |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.21 (#6332) | 98626ec |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.8 (#6330) | 89409bd |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.6.1 (#6342) | f772f88 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.1.3 (#6344) | e5c763a |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.26 (#6341) | d986c31 |
Tommy Petty | fix(pte): fix an issue where when PTE throws exception after resize (#6152) | cf75a0b |
Tommy Petty | fix(cli): add note about webhooks in migration run command (#6112) | 9baf406 |
Binoy Patel | chore: remove * as React imports (#6350) | 04a68cf |
Espen Hovlandsdal | refactor(cli): use fs methods for reading package.json files (#6351) | 0339647 |
renovate[bot] | chore(deps): update react monorepo (#6353) | 3e03e1b |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.6.3 (#6354) | a27604d |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.29 (#6356) | 6f7d186 |
renovate[bot] | chore(deps): update dependency prettier-plugin-packagejson to ^2.5.0 (#6357) | a380e49 |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.23 (#6362) | f08cf40 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.30 (#6361) | a211e2d |
renovate[bot] | chore(deps): update peter-evans/create-pull-request digest to c55203c (#6363) | 6736e29 |
renovate[bot] | chore(deps): update pnpm to v8.15.7 (#6364) | 406a78a |
Cody Olsen | chore: fix tsc build (#6360) | 748e6b0 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.14 (#6367) | aaaf585 |
Tommy Petty | fix(bug): update to not add annotation in PTE if all fields are null (#6346) | e10fd87 |
Per-Kristian Nordnes | fix(core/inputs): fix issues with focus handling (#6370) | eca960e |
Herman Wikner | feat(core): display custom styles in PTE style selector (#6275) | ee31fb1 |
Bjørge Næss | chore: disallow and remove react default imports (#6369) | 447067f |
Binoy Patel | chore(lint): continue linting on error (#6374) | 4d96a89 |
Binoy Patel | chore(lint): fixes issue where boundaries lint rule was not working (#6376) | d1066a8 |
Espen Hovlandsdal | fix(cli): add migration to list of core commands, remove migrate (#6377)
| 100048a |
Cody Olsen | fix: crash in hotspot and cropping on Next.js (#6380) | 0dade62 |
Espen Hovlandsdal | fix(cli): upgrade and unpin import & export modules (#6347) | 905d469 |
Espen Hovlandsdal | chore(deps): fix broken lockfile | c023b05 |
Ash | fix(core): reset global search results when SEARCH_REQUEST_COMPLETE occurs after any action causing search parameters to change (#6224) | 00a5d91 |
Ash | feat(core): add prefix search support (#6010) | 3849b53 |
Herman Wikner | fix(tasks): padding when comment input is focused (#6372) | f6c46cc |
renovate[bot] | chore(deps): update dependency @sanity/pkg-utils to v6.6.6 (#6358) | 658568b |
RitaDias | fix(block-tools): removal of strikethrough in links when copying from gdocs to PTE (#6382) | 52cf1c7 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.8.10 (#6383) | 1f26e1b |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.12.4 (#6386) | fb78d57 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.10 (#6385) | 330117e |
renovate[bot] | chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.8 (#6384) | 008ae42 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.31 (#6388) | c8b411a |
Per-Kristian Nordnes | fix(form/inputs): Remove obsolete code for restoring selection after editing Annotation (#6389) | b7961fd |
cngonzalez | test(core): unit tests for document actions (#6371) | 89a9696 |
Ash | fix(core): ignore locally applied createIfNotExists mutations when using server actions (#6334) | c204a7a |
Herman Wikner | feat(core): make PTE resizable (#6255) | d92eea3 |
cngonzalez | fix: update unit tests to account for new create behavior (#6391) | 55cacc6 |
Ash | feat(core): enable Text Search API search strategy by default (#6373) | 679a788 |