Rewrite Relay Search using a modern JS framework
Relay Search currently uses backbone.js, which while it works isn't as popular these days. The code is not exactly idiomatic either, with hacks bolted on here and there as the requirements for Relay Search have grown.
A rewrite would make Relay Search more extensible as we continue to grow the number of things we want it to do. Using React would allow us to create reusable components for the display of information where we currently have a lot of code duplication (especially in templates).
A rewrite would also take advantage of Onionoo's pagination and finally solve the performance issues that put limits on the number of results you can explore from a single query (currently 2000, but that's assuming your browser is running on my dev machine, which isn't a typical machine). A query to demonstrate this:
https://metrics.torproject.org/rs.html#search/running:true
Even though it's only loading 2000 results, this still takes approximate 6 seconds to load on my development machine.
By improving extensibility, we'd be able to provide more hints to relay operators when we detect issues with their relays. Currently these end up duplicated across the relay/bridge templates just due to the way they were initially implemented, so with each new hint (new relay, non-recommended version, etc) we add duplicate code where improvements to language only get applied in one place or links to the website don't get updated when the website changes.
One reason we've ended up in this mess is that it's been quicker to deploy changes in relay search than it has been to implement them in the Onionoo backend, although now that there is some momentum going there with inclusion of overload-* and bridgestrap results in Onionoo, it may be time to uplift the Relay Search specific work into Onionoo and return Relay Search to the pure frontend application it's always wanted to be.