Save Instance Widget

2965
27
04-29-2025 09:50 PM
Status: Open
Labels (1)
SvenJensen
Occasional Contributor

Edit:

I’m no longer actively developing the free, open-source Save Instance Widget. It was a great starting point, and I’m truly grateful to everyone who tried it out, sent in feedback, and reported bugs — your input shaped the direction of my work and pushed me to build something better.

That’s why I’ve since moved my focus to The Cloud Widget — a complete redesign that takes the concept much further.

The Cloud Widget is designed to transform everyday workflows in ArcGIS Experience Builder, making it easier than ever for users to save, recall, and collaborate within the maps you build.

It allows users to:

  • Save their work as Droplets (map states that include extent, layers, drawings, basemap, and more).

  • Recall work instantly with map screenshots for easy identification.

  • Share Droplets with colleagues for real-time collaboration.

  • Access saved work anytime, anywhere.

  • Take advantage of Draw Widget support for richer map editing.

I’ve been working hard to make this the most intuitive and productive save-and-share widget for Experience Builder. If you tried the Save Instance Widget and found it useful, I think you’ll really enjoy what the Cloud Widget can do.

👉Visit my website JensenGIS  or this community post to learn more about The Cloud Widget!

I would also like to specifically thank the following individuals for their feedback:
 @Brian_McLeer , @JoelEdgar , @AustinWolf1994 , @JasonBOCQUET , @MarkHoyland2 , @BrettMartin1 , @PierreloupDucroix , @Marshal and @Bloomers3166 .

Thank you!
Sven








About the Save Instance Widget (Legacy)

For anyone still interested in the Save Instance Widget, here’s some background and resources:

Hello everyone, my name is Sven. I’m a university student based in Vancouver, BC, currently pursuing a degree in Computer Science with a minor in Geographic Information Science (GIS).

Inspired by the Save Session Widget for Web AppBuilder, I created the Save Instance Widget for Experience Builder.

The Save Instance Widget lets you save and share the current state of your web map in Experience Builder — including extent, visible layers, basemap, graphics, and more. It was designed as an open-source alternative to help fill the gap left by Web AppBuilder.



Installation (Legacy)

You can download the latest compiled version of the Save Instance Widget from my Github.


Setup (Legacy)

Once downloaded, follow Esri’s guide on how to add custom widgets to your Experience Builder installation.

  1. Place the widget inside your /widgets directory.
  2. In Experience Builder, go to the Insert Widget tab and scroll down to the Custom Widgets section.
  3. Drag the Save Instance Widget onto your toolbar.
  4. Configure the widget by selecting a map for it to interact with.

That’s it — you’re ready to go.


Usage (Legacy)

Save an Instance

Enter a name for the instance and click the Save Instance button.
instanceName.png

 



 



 

Load an Instance

Click the Load Instance button to apply a previously saved map state.
instanceLoad.png

 

 

 

 

Rename an Instance

Click the Edit Instance Name button and enter a new name when prompted.
instanceRename.png

 

 

 

 

 
Download an Instance

Click Download Instance to export a .txt file containing that instance.
instanceDownload.png

You can also download all saved instances using the Download Instances button at the bottom right of the widget.

 

Clear Instance Graphics

Click Clear Instance Graphics to remove any graphics associated with the instance from the map.
instanceClearGraphics.png

 

 

 


I'd love to get instance-loaded graphics working with the Esri Draw Widget at some point. It’ll take a bit of setup, but if it’s something people are asking for, I’m happy to start looking into it — just let me know!

 

Delete an Instance

Click Delete Instance to permanently remove it from your saved list.
instanceDelete.png

 

 

 


Sharing Instances

To share a saved instance, simply send the .txt file to another user. They can import it using the Upload Instances button in the bottom-left corner of the widget.

In the future, I’d love to add support for cloud storage of instances — let me know if that’s something you’d use!

Feedback
I’m incredibly grateful for all the feedback, bug reports, and feature requests that came in while I was building the Save Instance Widget. That community input has been the driving force behind The Cloud Widget, and I look forward to hearing your thoughts on it as well.
Stay tuned — more tools are coming soon!

27 Comments
AustinWolf1994

This is a really great widget. Awesome work, Sven! The only thing I think would be really useful with this widget is to overwrite Instances that already exist. For instance, if I open my instance (Austin's Instance) and move to a different spot or toggle the visibility of a few different layers, I would want to save my Instance with this widget without having to first delete and then save. 

SvenJensen

Hi @AustinWolf1994,

Thanks! I'm glad you like the widget.

Overwriting already saved instances is a great idea. I will implement this feature for the next release.
Thank you for your feedback!

Cheers,

Sven

Brian_McLeer

This is a great widget, thank you for releasing it! 

Brian_McLeer

Some feedback I would suggest is changing the dialogue boxes like this:

Brian_McLeer_2-1748626447275.png

To be something within the widget. This widget offers a function like this when the user clicks delete. 

Brian_McLeer_3-1748626558418.png

 

Some feedback I had with working @JeffreyThompson2 on the widget above was adding a user acknowledgment of local storage which the widget above has as well before automatically using local storage. Also a reminder for users that local storage is not a good solution for long term storage. 

Brian_McLeer_5-1748627451286.pngBrian_McLeer_6-1748627462069.png

 

Brian_McLeer

Other feedback request:

In the settings in developer edition, enable the option to have the clear instance graphics button be hidden or shown within the widget. If the application doesn't have the out of the box Draw tool, the button doesn't have anything to correlate with. 

Brian_McLeer_0-1748633994213.png

 

Brian_McLeer

Enhancement Request: Instances look to be transferrable to any application, not one particular application. I implemented the widget in two testing sites with different URLs, and the saved instance of 1 can be viewed in the other. The request is for saved instances to be unique per application (URL). 

SvenJensen

@Brian_McLeer,

Thank you for all this amazing feedback and creating GitHub issues! Your Custom Draw Widget enhancements are an inspiration, very cool.

I am excited to begin implementing your requested enhancements this week! I have been working on an hosted version of the widget and would love to hear your feedback on the idea. The hosted widget stores the user's saved instances on a secure web server, users can access instances from any device/browser and share instances simply by inputting another user's email. I would love to get this hosted version working with the Custom Draw Widget so users can seamlessly update and share graphics in realtime.

However as of right now the Save Instance Hosted is on pause as I will resolve the GitHub issues first.

Cheers!
Sven

Brian_McLeer

Thank you @SvenJensen for putting the time into this widget, I think many organizations will benefit from it! I like the idea of the Save Instance Hosted version. 

PierreloupDucroix

Hello @SvenJensen this looks great !

I am using ExB Dev Edition 1.17, I placed your widget in the client\dist-prod\widgets folder but cannot see it in the widget list. I also tried to place it in the \client\your-extensions\widgets folder and run npm run build:prod (but I don't think it is necessary since it is already built) with the same result.

Is it working in ExB developer edition ? Or only in the portal ExB version.

[EDIT] I found that a custom widget should be placed in the client\dist\widget (and not dist-prod) folder after it has been built. Then you have to modify the widgets-info.json file to add information and manifest about it.

Now it is working in the dev edition. And I wonder if you have plan to add translation.

Anyway, great job !

JasonBOCQUET

Hi @SvenJensen I'll try your widget on my local exp builder 1.17 in developer edition. But when I click on "Save Instance" nothing happens.. I see no error in the console (F12).

 

There is a way to understand why nothing happens ?