FeedSimple: Live XML and GeoRSS Feed Integration with Spatial Join and Dynamic Feature Layer

334
1
03-17-2026 10:31 PM
adamsimple
Occasional Contributor

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.

fs usgs desktop.png

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+.

1 Reply
adamsimple
Occasional Contributor

I am working on an updated release for ExB 1.20. I expect that to be done early next week if not later this weekend. I may be sneaking in a few enhancements as well 😉.