Select to view content in your preferred language

ArcGIS Maps SDK for JavaScript – Version 5.0 Release

1468
2
02-24-2026 07:15 AM
Noah-Sager
Esri Regular Contributor
11 2 1,468

We’re on to version 5.0. The previous version was 4.34. It’s a semantic versioning thing, not a paradigm shifting thing. However, we did take this opportunity to re-assess and re-tool as we move forward with web components.

By the numbers: we fixed 27 bugs, made 14 enhancements, updated 100s of samples (and added some new ones too), added 4 new map components, refactored 6 map components, released 10 legacy components, and added 1 new amazing script tag and URL.

 

NoahSager_0-1771944330948.png

 

What? A script tag and a URL are worthy of the release blog? Yeah, because it’s amazing.

At 4.34, to work with the core API and components and get the nice Calcite styling, you might have used multiple script tags and URLs like this:

 

<!-- Load Calcite components from CDN -->
<script type="module" src="https://js.arcgis.com/calcite-components/3.3.3/calcite.esm.js"></script>

<!-- Load the ArcGIS Maps SDK for JavaScript from CDN -->
<script src="https://js.arcgis.com/4.34/"></script>

<!-- Load Map components from CDN -->
<script type="module" src="https://js.arcgis.com/4.34/map-components/"></script>

 

But now, you only need 1 script tag and URL:

 

<!-- Load the ArcGIS Maps SDK for JavaScript from CDN -->
<script type="module" src="https://js.arcgis.com/5.0/"></script>

 

Whoa, that’s pretty cool. Note: this is a breaking change (more on that topic later), but if you want the old behavior, and to only load the core API (not components), you can do this:

 

<!-- Load the core ArcGIS Maps SDK for JavaScript from CDN -->
<script type="module" src="https://js.arcgis.com/5.0/core.js"></script>

 

Back to version 5.0. In the Fall of 2025, we discussed about this move to semantic version:

 

JavaScript Maps SDK is moving to semantic versioning!

https://community.esri.com/t5/arcgis-javascript-maps-sdk-blog/javascript-maps-sdk-is-moving-to-seman...

 

ArcGIS Maps SDK for JavaScript is Moving to Semantic Versioning

https://www.esri.com/arcgis-blog/products/js-api-arcgis/announcements/arcgis-maps-sdk-for-javascript...

 

With semantic versioning, major releases contain breaking changes, and minor releases do not. Version 5.0 will have breaking changes, and then versions 5.1 and 5.2 will not. Around this time next year, we will release version 6.0, and that will have breaking changes, and then versions 6.1 and 6.2 will not. When 5.1 releases, you can update the version number and things can only get better. But still, read the release notes.

We updated the Programming Patterns guide for 5.0, so this is an ideal time to review all the best practices.

https://developers.arcgis.com/javascript/latest/programming-patterns/

 

Speaking of best practices, here’s a new one to share. AMD and "require()" are deprecated at version 5.0 and will be removed at version 6.0. So, if you’re using the CDN version, use "$arcgis.import" (available since version 4.28 via CDN) instead.

https://developers.arcgis.com/javascript/latest/programming-patterns/#set-the-portalurl-in-a-cdn-app...

 

There have also been some changes to how we import types. The "__esri" namespace is no longer supported for importing types (will be removed at 6.0). Please use individual ESM imports to directly import types from their respective module files instead. There’s a codemod linked to in the release notes that can help with the refactor.

https://developers.arcgis.com/javascript/latest/release-notes/#typescript-import-changes

 

Let’s do some SDK focused updates now. References now contains 50% more components (based on number of sections)! You read that right. We added ai-components and common-components at this release, and you can now find them in our References page.

 

NoahSager_1-1771944330953.png

 

But that’s not all. If you expand the map-components section, you’ll see that we updated the documentation to make the information clearer and more logical. All components now use a lowercase kebab-style naming convention, and some types have been moved into sections directly below their component. This is part of our progress to transition from widgets to web components (all widgets are now deprecated as of version 5.0).

 

NoahSager_2-1771944330953.png

 

I know it’s a lot already, but let’s do one more SDK update, and then we’ll look at some API features. The Sample Code page was enhanced with a much more robust search experience. You can now search by title and/or tag, and it is so fast and nice.

Here’s an example of searching for a sample that does some editing, but it doesn’t matter if it’s using a method or a component to do the work, so I filter by the “applyEdits” tag (instead of “Editor” by title):

 

NoahSager_3-1771944330962.png

Or, I could search for samples that have “Basemap” in their title, because I remember there was a neat sample I had seen with “Basemap” in the title. And I also need that example to use API keys. Now, I can search for both at the same time:

 

NoahSager_4-1771944330967.png

 

Want to see something even cooler? Open a sample, and then look at the wonderful new UI. On one page you have the description, the code, and the app, with a couple delightful rows of buttons (in the top-right) to help you toggle on/off parts of the page, or to modify the app’s state.

 

NoahSager_5-1771944330987.png

 

Now, we’ve covered a lot of ground, but there is a lot left in the 5.0 release (like, all the new API features). But we don’t a lot of time to cover it all. Here is a sampler plate of release highlights; please refer to the release notes and release blog for the whole story.

If you’re working with curves (like true curves), then you will love the editing and snapping updates we made.

FeatureTable got mega updates with contingent attribute value constraints and better saving and attachment experiences.

The new SelectionManager (beta) manages feature selection across layers and tables within a MapView or SceneView.

3D scenes now support light-emitting visualization through emissive material properties and a global Glow effect.

The new GaussianSplatLayer is a 3D layer type that provides photorealistic visualization of complex built and natural environments.

AI components (beta) are here and really cool, read more about them here: https://www.esri.com/arcgis-blog/products/js-api-arcgis/developers/introducing-ai-components-beta-in...

We added 4 brand new map components: Link Chart Nonspatial Visibility Toggle, Snapping Controls, Utility Network Trace Analysis, and Volume Measurement (beta).

The Oriented Imagery Viewer component interface has been redesigned to deliver a more streamlined and intuitive user experience.

Elevation Profile, and Shadow Cast components have been refactored to utilize the ElevationProfileAnalysis and the ShadowCastAnalysis. Similarly, Volume Measurement (beta) was created as a new component on top of VolumeMeasurementAnalysis.

The Popup component (beta) can now be used as the default popup for the Map, Scene, and Link Chart components by setting the popup-component-enabled attribute.

The Directions component now allows users to fine-tune routes with waypoints in a familiar “drag-and-drop” experience.

We enhanced printing to deliver a better user experience with several new capabilities, the biggest of which is probably enabling Dynamic Legends.

We also enhanced polygon labeling by enhancing how labels are automatically repositioned when a polygon’s centroid is partially or fully out of view.

And more… there is so much more…

In closing, read the release notes and check your travel plans, because the Esri Developer & Technology Summit is happening on March 10 – 13. We hope to see you there, either in-person or online. We can tell you more about 5.0 then.

 

NoahSager_6-1771944330992.png

https://www.esri.com/en-us/about/events/devtech/overview

                                                                                                                                                            

References

 

Release Blog

https://www.esri.com/arcgis-blog/products/js-api-arcgis/announcements/arcgis-maps-sdk-for-javascript...

 

Introducing AI components (beta) in the ArcGIS Maps SDK for JavaScript

https://www.esri.com/arcgis-blog/products/js-api-arcgis/developers/introducing-ai-components-beta-in...

 

Calcite Release Blog

https://www.esri.com/arcgis-blog/products/developers/announcements/calcite-design-system-5-0-release...

 

5.0 Samples

https://developers.arcgis.com/javascript/latest/sample-code/?tagged=5.0

 

Breaking Changes

https://developers.arcgis.com/javascript/latest/release-notes/ - breaking-changes

 

ArcGIS Maps SDK for JavaScript is Moving to Semantic Versioning

https://www.esri.com/arcgis-blog/products/js-api-arcgis/announcements/arcgis-maps-sdk-for-javascript...

 

Esri Developer & Technology Summit [March 10 - 13, 2026]

https://www.esri.com/en-us/about/events/devtech/overview

 

2 Comments
JoelBennett
MVP Regular Contributor

This release was announced about five weeks ago...are the downloads going to be available soon?

Noah-Sager
Esri Regular Contributor

Hi @JoelBennett, thanks for your patience. The downloads are available today: https://developers.arcgis.com/javascript/latest/downloads/

 

Contributors
About the Author
Noah Sager is a Senior Product Engineer on the ArcGIS Maps SDK for JavaScript team at Esri. He specializes in labeling, routing, printing, and maybe more. Prior to joining Esri, he mapped utility lines around Appalachia, investigated public restroom access in Chicago, and studied foraging behavior in squirrels in Canada.