The current code works great for apps that respect the URL metaphor by only using the fragment to represent its internal state (e.g. VMWare ESXi web UI), but breaks down for apps that completely commandeer it via JavaScript (e.g. Discourse, Discord, GitHub)