Skip to content
Schedule Social Media

Press Esc to close.

Breaking Bluesky Severity: medium

Bluesky TypeScript SDK packages go ESM-only and drop Node 18 and 20

Announced21 May 2026
EffectiveMay 2026
PlatformBluesky

What changed

On May 21, 2026 the AT Protocol team said every package in the @atproto namespace had been rebuilt and republished over the previous days. They now ship as ESM, support for Node 18 and 20 is dropped, and the published policy is to support Node's current LTS releases. The lex SDK is tagged 0.1.0 and recommended for all new development. There are no plans to drop @atproto/api or @atproto/xrpc: after lex reaches 1.0 they enter maintenance mode with critical bug fixes and security patches only.

What it means

Tools that post to Bluesky with @atproto/api, @atproto/oauth-client-node or other @atproto packages must run on a current Node LTS to use the new releases, which are ESM only.

Who is affected

Developers of Bluesky scheduling, posting and bot tools that use the TypeScript @atproto packages, especially on Node 18 or 20.

What to do by May 2026

Upgrade servers and CI to a current Node LTS (Node 22 or later can still require() the ESM packages), then update the @atproto packages. Start new code on the lex SDK; @atproto/api stays supported.

What this means for you

Many Bluesky apps are built with Bluesky's free code toolkit. In May 2026 the newest versions stopped working on older versions of Node, the software many apps run on. For you, nothing changes, as long as your app maker keeps their servers up to date. Apps that don't may stay on old versions and miss fixes.

The details

  • Republished packages: every @atproto/* package, including @atproto/api, @atproto/tap and @atproto/oauth-client-node, plus lower-level packages such as @atproto/crypto.
  • ESM only: "all of these packages are now shipped as ESM." In Node 22 and later you can still load them with require() thanks to require(esm).
  • Node support: Node 18 and 20 are dropped; going forward Bluesky will "officially commit to supporting Node's current LTS releases." The codebase moved to TypeScript 6.
  • lex SDK: @atproto/lex is tagged 0.1.0, considered a "stable preview", and recommended (with @atproto/lex-server) for all new development. Some Bluesky helpers in @atproto/api, such as safe preference updates and !hide and !warn label handling, are not yet in lex; a separate helper package is planned.
  • String types: lex distinguishes string formats, so migrating code must cast values as DidString, as AtUriString and so on. The team has not decided on a smoother path yet.
  • Old packages: "There are no plans to drop support for the existing @atproto/xrpc and @atproto/api packages." Maintenance mode starts some time after lex 1.0, with no date given.
  • Earlier SDK changes: @atproto/api 0.14 and the 2024 session refactor.

What to do next

  • Business owners: Nothing.
  • Marketers and agencies: Nothing.
  • Developers: Move to a current Node LTS, update all @atproto/* packages together, remove CommonJS workarounds, and use lex for new code.

Primary sources

Checked against the source 7 Nov 2026

Get an email when a new API change is added

Follow new entries with the RSS feed. Each platform also has its own feed, for example X or Meta.