{"collection":{"slug":"productivity-apps","name":"Productivity & Collaboration"},"digest":{"id":"cwd_sSABQla4IfNTgGlFm2vXZ","weekStart":"2026-07-13","title":"Figma bridges code and design while Slack SDKs modernise for Node 20","intro":"Figma lets developers bring coded screens back into design files with variables preserved, while Slack's JavaScript SDKs drop Node 18 and switch to native fetch. Notion's JS SDK adds trashed-content search.","body":"### From code back to canvas\n\nFigma made a notable move this week for teams that work across engineering and design. The company's [new feature for bringing coded screens onto the canvas](/release/rel_hZD-VMk9b8IfxpNL7oGQj-figma-brings-code-backed-screens-onto-canvas-with-variables-attached) preserves variables attached to those screens, meaning developers can take a component built in code — or an older legacy screen — and pull it directly into a Figma design file without losing the variable bindings. For teams that iterate on existing UI rather than starting from scratch in design tools, this closes a long-standing round-trip gap. The feature is complemented by [AI credit usage CSV exports](/release/rel_9GjPibI3IsYWlprSlIdDx-figma-adds-ai-credit-usage-csv-for-beta-features) for admins, offering a more granular view of how beta AI features consume credits — useful for forecasting spend as those features mature.\n\n### Slack SDKs go native\n\nSlack shipped two major version bumps for its JavaScript tooling, both with a clear theme: modernisation. The [Bolt JS SDK v5.0.0](/release/rel_GA_9rjiE0XedGHK0gX1Rj-v5-0-0) drops Node.js 18 support (minimum is now Node 20), removes the deprecated `WorkflowStep` class in favour of `CustomFunction` and `app.function()`, and replaces the `axios` HTTP client with native `fetch` for `response_url` calls. The [@slack/web-api v8.0.0](/release/rel_SfP3xxzrMKqI6at-UEGxo-slack-web-api-8-0-0) follows the same Node 18 deprecation and introduces a redesigned error-handling system: plain objects with a `code` property are replaced by proper `Error` subclasses like `WebAPIPlatformError`, all extending a common `SlackError` base class. Both migrations are breaking but straightforward — error checks go from `if (error.code === ErrorCode.PlatformError)` to `if (error instanceof WebAPIPlatformError)`. On the client side, Slack's [26.07.30 desktop release](/release/rel__wsi2oTqOTQDsse3QG_A8-slack-26-07-30) fixes a bug where Salesforce link buttons in workflows were untappable on iOS.\n\n### Notion SDK: search the trash, export the types\n\nNotion's JavaScript SDK received two small but useful updates. [v5.23.2](/release/rel_Jck3ArFOwPUDMsT57NfuQ-notion-sdk-js-v5-23-2-adds-search-for-trashed-content) extends `client.search()` with an `in_trash` filter, letting you retrieve only trashed pages and data sources — existing searches remain unchanged, with trash excluded by default. Separately, [v5.23.1](/release/rel_m8QhJnXGDLazJrsGqwPw0-notion-sdk-v5-23-1-exports-rich-text-annotation-types-and-fixes-pagination) exports rich text annotation types (`ApiColor`, `RichTextItemResponseCommon`, `AnnotationResponse`) from the package entrypoint and fixes a pagination helper regression under `strictNullChecks` that was introduced in the previous minor version. Notion's own desktop app shipped two routine bug-fix releases (1.7.322 and 1.7.321) with no feature changes to call out.","releaseIds":["rel_hZD-VMk9b8IfxpNL7oGQj","rel_9GjPibI3IsYWlprSlIdDx","rel_GA_9rjiE0XedGHK0gX1Rj","rel_SfP3xxzrMKqI6at-UEGxo","rel__wsi2oTqOTQDsse3QG_A8","rel_Jck3ArFOwPUDMsT57NfuQ","rel_m8QhJnXGDLazJrsGqwPw0"],"releaseCount":9,"generatedAt":"2026-07-20T06:19:42.787Z","releases":[{"id":"rel_hZD-VMk9b8IfxpNL7oGQj","title":"Figma brings code-backed screens onto canvas with variables attached","path":"/release/rel_hZD-VMk9b8IfxpNL7oGQj-code-backed-screens-land-on-canvas-with-variables-attached","org":{"slug":"figma","name":"Figma"},"importance":3},{"id":"rel_9GjPibI3IsYWlprSlIdDx","title":"Figma adds AI credit usage CSV for beta features","path":"/release/rel_9GjPibI3IsYWlprSlIdDx-admins-can-download-ai-credit-usage-csv-for-betas","org":{"slug":"figma","name":"Figma"},"importance":2},{"id":"rel_GA_9rjiE0XedGHK0gX1Rj","title":"v5.0.0","path":"/release/rel_GA_9rjiE0XedGHK0gX1Rj-v5-0-0","org":{"slug":"slack","name":"Slack"},"importance":null},{"id":"rel_SfP3xxzrMKqI6at-UEGxo","title":"@slack/web-api@8.0.0","path":"/release/rel_SfP3xxzrMKqI6at-UEGxo-slack-web-api-8-0-0","org":{"slug":"slack","name":"Slack"},"importance":null},{"id":"rel__wsi2oTqOTQDsse3QG_A8","title":"Slack 26.07.30","path":"/release/rel__wsi2oTqOTQDsse3QG_A8-slack-26-07-30","org":{"slug":"slack","name":"Slack"},"importance":null},{"id":"rel_Jck3ArFOwPUDMsT57NfuQ","title":"Notion SDK JS v5.23.2 adds search for trashed content","path":"/release/rel_Jck3ArFOwPUDMsT57NfuQ-search-can-now-query-trashed-pages-and-data-sources","org":{"slug":"notion","name":"Notion"},"importance":3},{"id":"rel_m8QhJnXGDLazJrsGqwPw0","title":"Notion SDK v5.23.1 exports rich text annotation types and fixes pagination helpers","path":"/release/rel_m8QhJnXGDLazJrsGqwPw0-rich-text-annotation-types-exported-pagination-helpers-fixed-under","org":{"slug":"notion","name":"Notion"},"importance":2}]}}