If you maintain a KickJS v3 app, the v5 changelog probably reads like a wall of unfamiliar primitives — defineAdapter , defineHttpContextDecorator , Scope.REQUEST , definePlugin , ContextMeta augmentations. The temptation is to delay: "we'll do it next quarter." This is a conceptual walkthrough of what actually changes between v3 and v5, what to migrate in what order, and where the sharp edges hide. The goal is to leave you with a mental model, not a recipe.
The short version: a v5 bump is worth doing if you're still adding features. Per-request boilerplate shrinks, role decorators become typesafe, the dep tree gets smaller, and your codebase stops drifting away from where the framework's own docs and examples now live.…