RFC-78: Dropping support for React 16 and rendering in a React 18 concurrent root in Jira and Confluence

Thx for clarifications.

Can you provide us with a clear lists of components which are:

  • Verified to be strict mode compatible
  • Non compatible components with identified issues

Cheers
Prem

@pch I’m out of office for a bit and no one is actively owning this area at the moment, just wanted not leave you hanging. I’ll have a proper look when I’m back in August, but likely there’s not much more than I know off the top of my head:

  • @atlaskit/badge uses StrictMode in unit tests (and similar other components likely work)
  • @atlaskit/portal (and the components that use that like Modal, Popup, Calendar, etc) still haven’t landed the fix I alluded to above
  • @atlaskit/dynamic-table uses legacy context, but so may some other Atlaskit components indirectly

I don’t know of any app running using React 19 or StrictMode as I’ve given a few Atlassians the same guidance as I’ve given you, so it’s mostly an unknown area for us until we do start looking formally.

2 Likes

Apologies for another delayed response, it’s been a bit hard to give another half answer, but I probably have enough to give an end-of-year update:

Strict Mode

We have no official plans to support Strict Mode. It might be possible after we’ve done a full React 19 migration, but I do not see us enabling Strict Mode ourselves for the foreseeable future and it’s not on our roadmap.

React 19

Probably not a surprise, we’ve started on the journey to React 19 :tada: I expect we’ll share a bit more in 2026 as we have a timeline on dropping React 18 support, but I can say officially we’ve done more than just explorations.

I believe all of the Design System Team packages work in React 19 today (though it’s possible ecosystem support is pending a feature gate). We formally haven’t started dogfooding React 19 anywhere, but we’ve had a few apps get a local working branch and fixed everything we saw blocking that. We’re working on involving the wider platform and frontend monorepo now.

I’m not here to promise a timeline, but ecosystem comms are written as one of the first steps when that roadmap is solidified and fully resourced, but so far React 19 feels much smoother than React 18 — mostly statically deterministic and a matter of removing deprecated APIs and unmaintained third-party dependencies rather than changing the way the entire root renders.