I just noticed the way koa-router registers middlewares is very different from how koa does it, which kinda sucks because as you guys pointed out you cannot extend the context from that point onward and have typings on it. I'll play a bit with the type system and try to come up with good solution.