Client-side route handler