FeedSimple: XML/GeoRSS Feed Widget
The idea for this came to me Thursday evening at the 2026 Esri Dev/Tech Summit and this is what I have. I am in the process of developing a configuration guide. This widget has gone through a ton of changes in a few days, so that's made lots of my screen shots outdated. I should have that put together shortly. You can find the widget and documentation on my GitHub site (at the bottom). I was going to post the zip file, but this is widget rapidly changing and GitHub is the place to get the latest.
Built a custom ExB widget that consumes live XML-based feeds and displays them as interactive cards alongside a web map. Compatible with RSS, Atom, GeoRSS, and custom XML schemas.

King County Road Closures (spatial join mode) https://feed-test.mapsimple.org
USGS Earthquakes - Past 24 Hours (auto-generated map layer) https://feed-quakes.mapsimple.org
Core
- Universal XML parser: RSS, Atom, GeoRSS, custom XML with recursive nested field flattening, namespace stripping, attribute extraction, array handling
- Configurable polling with Page Visibility API (pause when hidden, instant resume)
- Non-blocking error handling: stale data stays visible on fetch failure
- CORS proxy support via esriRequest with automatic portal token auth
- Independent versioning and config migration system
Card Rendering
- Markdown card templates with {{token}} substitution
- Chainable pipe filters: date formatting (24h, timezone offset), math (/, *, +, -), round, abs, prefix, suffix, upper, lower, autolink, externalLink
- Mobile card template (separate simplified template at 600px and below)
- Status color coding: exact match mode (per-value colors) and range mode (numeric class breaks with labels)
- Color legend: collapsible bar above cards, admin-togglable, shows swatches and labels
- Card action toolbar: zoom, pan, expand, external link buttons with configurable position (bottom/right/kebab menu) and separate mobile position
- Hover tooltips from any field
- Expand button showing raw field:value pairs
- Source attribution footer with optional link
- Highlight animation on new/changed items after refresh
Search, Sort and Pagination
- Real-time client-side text search with 200ms debounce and configurable search fields
- Runtime sort controls with field dropdown and direction toggle
- Reverse feed order option
- Range label search and sort (virtual fields from color breaks)
- Expand-style pagination with Show More / Show All and {n} remaining count token
- Configurable item labels (singular/plural) for count display
Feed Map Layer
- Auto-generated client-side FeatureLayer from feed coordinates: no feature service needed
- ClassBreaksRenderer for range-based map symbology (independent map colors, sizes, marker styles per range)
- Dynamic popup title with {{token}} substitution
- Bidirectional card and map sync
- GeoRSS georss:point auto-splitting
- Efficient poll-cycle sync via applyEdits()
- FeatureEffect dimming on joined layers during search/filter
Spatial Join (Feature Service Integration)
- Join feed items to existing feature service by shared key
- Batch WHERE IN queries with numeric/string detection
- Card click: zoom/pan to matched feature + popup
- Configurable zoom level (points) and zoom buffer (lines/polygons)
Mobile and Responsive
- Mobile popup behavior: collapsed, dock position, hide dock button, hide action bar
- Mobile card template and mobile toolbar position overrides
- iOS auto-zoom prevention
Developer
- Debug logger with tagged channels (FETCH, PARSE, RENDER, POLL, JOIN, TEMPLATE, SETTINGS, FEED-LAYER)
- 137 unit tests across 4 test files
GitHub: https://github.com/MapSimple-Org/ExB-Simple-Public
Docs: https://mapsimple.org/samples/
ExB Developer Edition 1.19.0+.