Koa is a Node.js-based web application and API framework that offers an expressive, robust foundation. Designed by the same team that designed Express.js, Koa leverages generators so that developers may eschew callbacks and improve error handling. Unlike similar frameworks, Koa does not use middleware within its core, and as a result has an especially small footprint. Instead Koa-based applications are objects that contain an array of middleware generator functions. Developers can compose and execute these functions in a stack-like manner by request. Common tasks include proxy support, content negotiation, redirection, and cache freshness.