Client-side routing component