What's a good alternative to http://ra.osmsurround.org?

This QLever query for gaps in route=historic relations can be adapted to tell you exactly where the gaps are in a specific route relation:

PREFIX osmkey: <https://www.openstreetmap.org/wiki/Key:>
PREFIX osmrel: <https://www.openstreetmap.org/relation/>
PREFIX ogc: <http://www.opengis.net/rdf#>
SELECT DISTINCT ?route ?pos ?highway ?next_highway WHERE {
  # Compute the last member position of the route
  {
    SELECT ?route (MAX(?pos) AS ?last_pos) WHERE {
	  BIND(osmrel:9491877 AS ?route)
	  ?route osmrel:member [ osmrel:member_id ?last_highway ; osmrel:member_pos ?pos ] .
	  ?last_highway osmkey:highway [] .
    }
	GROUP BY ?route
  }
  
  # Get each member of the route
  ?route osmrel:member [ osmrel:member_id ?highway ; osmrel:member_pos ?pos ] .
  # as long as it’s a highway
  ?highway osmkey:highway [] .
  # and it isn’t the route’s last member
  FILTER NOT EXISTS {
	?route osmrel:member [ osmrel:member_id ?highway ; osmrel:member_pos ?last_pos ] .
  }
  # Get the route’s next member
  ?route osmrel:member [ osmrel:member_id ?next_highway ; osmrel:member_pos ?next_pos ] .
  FILTER(?next_pos = ?pos + 1)
  # as long as the two members don’t touch
  FILTER NOT EXISTS {
	?route osmrel:member/osmrel:member_id ?next_highway .
    ?highway ogc:sfTouches ?next_highway .
  }
}
ORDER BY ?route ?pos

QLever has a heatmap view but otherwise doesn’t do a lot of visualization. You’d have to copy the query into Ultra for more options. The other catch is that QLever is up to a couple weeks behind, making it a good tool for checking up on existing data but not the edit you just saved.