A Seamless Transition:
React and Web Components for Experience Builder Integration
Created by Ryan Ulsberger
March 24th, 2025
The Problem
Web App Builder and the ArcGIS Maps SDK V.3
vs
Experience Builder Development
- Widgets are strongly coupled with applications.
- Lack of flexibility across projects.
- ExB applications are harder to keep up-to-date.
Looking Ahead
While Experience Builder remains a great tool, we see opportunities to prepare for:
- ESRI Maps SDK standalone development.
- Avoiding unnecessary rework by future-proofing our work.
- Building components that seamlessly transition into future projects.
π‘ Proposed Solution
What if we proactively:
- βοΈ Develop reusable React components that work in both Experience Builder and standalone apps.
- π Reduce duplicate development while maintaining flexibility.
- π¨ Standardize UI & logic across projects.
Proof of Concept
- Demonstrates decoupled development that enhances flexibility.
- Functions in both Experience Builder and standalone ESRI Maps SDK apps.
- Encapsulates core functionality into reusable React components.
Why Reusable React Components?
Key benefits:
- Reduce duplicate development
- Ensure smooth future transitions
- Test Developments Independently of Experience Builder
π‘ Preparing for the Transition to Web Development
β
Most of our UI logic will already be builtβjust connect it to a new framework.
β
No need to start from scratch, saving time and effort.
β
We can transition gradually, instead of all at once.
β
Continue using Experience Builder during the transition.
Live Demo
- Demonstrate the use of the components within a Pure React Application.
- Deploy the Components as a Package.
- Install and render the component in Experience Builder.
Installing in Experience Builder
β οΈ Challenges Faced
Accessor#set Assigning an instance of 'esri.Graphic' which is not a subclass of 'esri.Graphic'
Accessor#set Assigning an instance of 'esri.geometry.SpatialReference' which is not a subclass of 'esri.geometry.SpatialReference'
- π€ ChatGPT
- π ESRI Support
- π§βπ» Ask a Dev
π Next Steps
- Develop a simple widget to replicate behavior
- Explore using the CDN when packaging components
π Key Takeaways
We know Experience Builder isnβt our long-term solution, butβ¦
- β
We proved that React components can work inside Experience Builder.
- β
We built reusable components, reducing duplicate development and future effort.
- β
Weβre set up for a smooth transition, without having to start from scratch.
- β
This approach allows us to adapt gradually, instead of making an abrupt shift.
Questions?