Type-safe client routing versus a full-stack framework's file-based routing — they're not really competing for the same job.