The world of web development is constantly evolving; browsers are advancing both capabilities and standards, while developer tooling is progressing. In this changing landscape, keeping your solutions future-proof requires adopting the latest standards and best practices.
If you are building solutions that integrate ArcGIS experiences into your apps, the new recommended approach is to use the ArcGIS Maps SDK for JavaScript’s web components. That approach applies to solutions that are fully custom, as well as those involving custom widgets in Experience Builder.
Esri’s transition to components
Esri is now fully committed to building standards-based web components that extend the core API of the ArcGIS Maps SDK for JavaScript into reusable custom HTML elements (e.g., <arcgis-map>). All legacy JavaScript Maps SDK widget functionality will eventually be deprecated and removed, making this transition essential for long-term stability.
While Experience Builder’s 2026 roadmap includes a transition for the underlying jimu framework to use JavaScript Maps SDK components, the current implementation is based on the SDK’s legacy widgets and map view and scene view rather than the components. However, that doesn’t prevent developers from building their custom widgets using the SDK’s components so that custom code embraces forward-looking techniques.
Understanding Experience Builder widgets vs JavaScript Maps SDK widgets
Now let’s take a step back. It is critical to understand the difference between Experience Builder widgets and JavaScript Maps SDK widgets and their respective roadmaps.
JavaScript Maps SDK widgets are legacy UI elements that enable common web mapping workflows. These widgets are being deprecated and later removed from the SDK. Equivalent functionality is available as web components.
Experience Builder widgets are configurable UI elements that are built using JavaScript Maps SDK. These widgets are not being deprecated/removed but will transition to use JavaScript Maps SDK components rather than legacy widgets.
Experience Builder and the power of React 19
Custom Experience Builder widgets are built using React.
Our strategic move to web components is well timed with the recent update of Experience Builder (version 1.19), which is now based on React 19. This new version of React introduces major improvements for working with web components, essentially treating them as native HTML elements. Therefore, using SDK components within custom widgets has been greatly simplified.
Some of the benefits that React 19 offers are:
Full support for custom elements: React 19 now fully supports the web components specification, allowing developers to use custom HTML elements within React without needing workarounds or wrappers.
Improved event handling: Event handling for custom elements is now more consistent, behaving similarly to native HTML elements.
Enhanced property handling: Better management of properties ensures a consistent and reliable data flow between React applications and the custom elements.
Get Started
Check out the following resources to learn how you can build Experience Builder widgets that use JavaScript SDK components:
- (Blog) Optimizing Custom Widgets in ArcGIS Experience Builder with Jimu UI, Calcite, and Map Components
- (Tutorial) ArcGIS Maps SDK for JavaScript components in a custom widget
- (Samples) If you are using the latest version of Experience Builder (1.19), see the Use map components for React 19 sample. If you are not yet ready to move to version 1.19 of Experience Builder, you can still use the SDK components. The map components sample illustrates how this can be achieved.
Conclusion
Esri development teams continue to innovate and adapt to the changing technological landscape, enabling more powerful applications and optimum productivity for building web applications. As Esri product teams work to evolve the underlying architecture of Esri’s web applications (like Experience Builder), there are pathways that developers can take today which will future proof their hard work put into custom solutions.
Your voice matters. If you have ideas or would like to share your requirements around building custom solutions using JavaScript Maps SDK components, post in Esri Community Ideas and make sure to use the “Components” label.
Article Discussion: