Skip to content
Malcolm edited this page Sep 21, 2016 · 313 revisions

Frameworks

Frameworks, boilerplates and other starter kits using Koa.

Name and description Downloads
EasyNode is a framework for microservice written with es6 and integrated a light web service based on koa and a light tcp servic based on native socket. You can utilize all feature characters of ES6 in the framework.
api-boilerplate - an API application boilerplate -
koa-generator - Koa' application generator just like express-generator(support 1.x && 2.x)
koa-gen - Express liked generator with standard style and gulp-nodemon (Koa v1.x & v2.x)
koala - a more feature-rich version of Koa, including many middleware and utilities
koan - Full stack JavaScript Web development boilerplate with Koa and Angular
component-boilerplate-koa - component + koa boilerplate
opinion - Koa, and some modules so you can just start building
cottage - Simple, fastest microframework based on Koa
koa-mvc - Opinionated and minimalist MVC generator
surface - A tiny middleware of RESTful API for koa
koanect - A bare minimum framework that allows your web app to run standalone or to be packaged and included in other koanect apps -
roo – jump-start your web app with a thin layer on top of koa to reduce initial boilerplate
resourced - A resource-oriented DSL for configuring koa
kona - a modular MVC framework and middleware stack built on koa
trek - Next generation full-stack JavaScript open source solution, based on Koa
kaio - A minimalist middleware to get started faster with Koa
koa-starter - A simple Koajs application starter template that includes controller, router, and view
baxel - Baxel is a MVC web framework build on top of Koa framework
strapi - Strapi allows you to build powerful back-end on top of Koa with no effort -
Paloma - An angluar-like MVC framework
koa-socket - Attaches socket.io to koa and allows koa-style middleware for sockets
koa2-boilerplate - A minimal boilerplate of koa v2.
koa2-starter-example - A starter for koa v2 with couchbase -
koa-skeleton - Front end skeleton with koa backend -
node-koajs-rest-skeleton - A simple Koajs 2.0 Application REST Skeleton (Koa v1.x & v2.x) -
koa-grace - A Nodejs SFB(Separation of Front and Back ends) framework, build with koa.(基于koa的标准前后端分离框架) -
koa2-kickstarter - An opinionated boilerplate for koa v2 with batteries included. -
koaton - Koaton is a CLI tool that provides a nice starting point for full stack JavaScript Web development with Koa, Ember, and Node.js along with CaminateJS. -
Pikachu - A Koa2 app boilerplate. -
lorem-koa - a CRUD application built with Koa. -
koahubjs - KoaHub.js -- Based on Koa platform Node web rapid development framework (Use es6/7) -

Middleware

Known middleware for Koa, you may want to search npm with "koa" to find more.

Koa v2 will try to convert legacy middleware for you, thus many in the lists below might just work out of the box. See Readme.md for more information about legacy middleware usage in Koa v2.

Name and description Supports v2 Downloads
koa-webpack-middleware - webpack-dev-middleware for koa2 with HMR(hot module replacement) supports.
koa-hello-world - Koa 'Hello World' middleware, useful for testing
grant - OAuth middleware
koa-cors - CORS middleware
koa-slow - delay answering requests by URL RegExp, useful for debugging.
koa-force-ssl - Middleware for force SSL
koa-cluster - clustering and error handling utility
koa-polyfills - user-agent based polyfill bundle serving
koa-polyfill-service - user-agent based polyfill bundle serving; based on polyfill-service
koa-sub-domain - middleware to handle multilevel and wildcard subdomains
koa-isbot - middleware detect bot crawler -
koa-toobusy - Toobusy middleware for koa.
koa-handle-error - Error handler Middleware for Koa@2.x.
koa-restql - Build RESTful API with single line of code. -

Security

Name and description Supports v2 Downloads
koa-ip-filter - Filter request IPs or custom ID with glob patterns, array, string, regexp or matcher function. Support custom 403 Forbidden message and custom ID.
koa-helmet - security headers for koa
koa-ip - Ip filter middleware for koa, support whitelist and blacklist
koa-acl - ACL middleware for koa
koa-rbac - Role-Based Access Control for koa
koa-pass - Conditionally skip a middleware when a condition is met.

Body Parsing

Name and description Supports v2 Downloads
koa-body - parse http request body
hal-body - parse hal+json request body
koa-parse-json - parse JSON request body
koa-better-body - a http request parser with support for urlencoded, multipart and json bodies!
koa-bodyparser - a body parser for koa, base on co-body
koa-multer - handling multipart/form-data for koa
koa-json-body - parse JSON http request bodies
koa-xml-body - parse xml http request bodies

Parameter Validation

Name and description Supports v2 Downloads
koa-input - parameter(support query, params, body and headers etc.) validate middleware for koa
koa-validate - parameter validate middleware for koa
koa-scheme - parameter validation middleware for koa
koa-router-validator - Validator middleware for koa-router
koa-router-schema - Schema validate middleware for koa-router
koa-context-validator - A robust context validator for koajs. Use Joi behind the scenes.

Rate Limiting

Name and description Supports v2 Downloads
ratelimit - rate limiting middleware
koa-better-ratelimit - support black/white lists, Retry-After header, 429 status, in-memory store.
koa-ip-filter - Filter request IPs or custom ID with glob patterns, array, string, regexp or matcher function. Support custom 403 Forbidden message and custom ID.

Vhost

Name and description Supports v2 Downloads
koa-vhost - vhost middleware
koa-sub-domain - middleware to handle multilevel and wildcard subdomains
koa-subdomain - middleware to handle multilevel and wildcard subdomains

Routing and Mounting

Name and description Supports v2 Downloads
koa-mount - mount koa applications as middleware
koa-route - uber simple routing middleware
koa-routing - routing middleware
koa-router - RESTful resource router
koa-directory-router - Directory RESTful resource router
koa-frouter - File as path
koa-rewrite - url rewriting middleware
koa-repath - A more flexible URL rewriting middleware for koa
koa-trie-router - Trie-based routing
koa-params - Express style params support for koa-route.
koa-methodoverride - HTTP method overriding middleware
koa-overwrite - Overwrites request.method with forms _method.
koa-qs - nested query string support
kroute - Simple, self-contained koa routes and applications
koa-dispatch - Hybrid Koa router with multiple handlers and param support.
koa-barista - routing middleware based on the strong barista router.
koa-joi-router - Configurable, input and output validated routing for koa
koa-version - Mounting app by version to different router.
koa-version-router - Automatic version for router.
koa-ovenware - Automatic Model / Controller Loader for Koa
koa-sub-domain - middleware to handle multilevel and wildcard subdomains
koa-forward-request - Forward request for koa.
impress-router - port Express router to koa
koa-simple-router - Simple and fast REST routing middleware (koa 2.x ready)
koa-66 - Router for koa v2

Documentation

Name and description Supports v2 Downloads
koa-docs - Koa middleware for automatically generating and serving API documentation

File Serving

Name and description Supports v2 Downloads
koa-serve - Koa middleware for serving static files
koa-send - a send file utility
koa-sendfile - a barebone send file utility
koa-static - static file serving middleware
koa-file-server - static file serving with additional features like etag and SPDY Push support
koa-static-server - Static file serving middleware for koa with directory, rewrite and index support
koa-static-cache - static file serving from memory
koa-spa - Single page app server build upon static-cache
koa-favicon - bounce favicon requests with a 404
koa-favi - connect.favicon like middleware default use node logo
koa-broccoli - a broccoli server (w/ livereload)
koa-combo - combine your static files at serverside and reduce number of HTTP requests in a flexible way
koa-watchify - Wraps a browserify or watchify instance into a koa middleware
koa-serve-static - Serve static files, based on Express's serve-static
koa-serve-list - Serve directory listings for koa, based on Express's serve-index
koa-stream - a send file utility supporting range request
koa-static-folder - Serve static files using a folder
koa-static2 - Middleware for Koa2 to serve a folder with Babel

SPDY

Name and description Supports v2 Downloads
koa-file-server - static file serving with additional features like etag and SPDY Push support

HTTP2

Name and description Supports v2 Downloads
koa-server-push - Specifically for adding HTTP2 Server Push headers for HTTP2 clients and proxies such as Google App Engine

JSON and JSONP Responses

Name and description Supports v2 Downloads
koa-jsonp - streamable jsonp support
koa-response-jsonp - koa jsonp middleware
koa-json-filter - json response filtering to reduce traffic
koa-json-mask - json response filtering to reduce traffic. Supports filtering at any depth
koa-json - pretty-printed json responses
koa-hal - hal+json response support
koa-jsonapi-headers - Validate JSON-API Request Headers

Compression

Name and description Supports v2 Downloads
koa-compress - compression middleware
koa-compressor - SPDY/HTTP2 compression middleware (always gzips)
koa-gzip - gzip support for koa responses
koa-minify - minify middleware for js, css, html and img
koa-uglify2 - uglify middleware for js with caching

Caching

Name and description Supports v2 Downloads
koa-cache-lite - Zero-dependency koa router cache
koa-fresh - HTTP response freshness testing middleware base on node-fresh
koa-etag - etag support for koa responses
koa-conditional-get - conditional GET support
koa-cash - response caching
koa-router-cache - Router cache middleware for koa

Authentication

Name and description Supports v2 Downloads
koa-basic-auth - simple user/pass basic auth
koa-passport - Passport middleware for Koa
koa-jwt - JWT (JSON Web Tokens) verification
koa-user - simple user module with tokens
koa-statelessauth - custom validation based on Authorization header
koa-bearer-token - Bearer token parser middleware for koa
koa-police - Policy based authentication library for Koa
koa-weixin-token - Weixin token services for koa
koa-http-auth - simple HTTP auth, including Basic auth & Digest auth

Sessions

Name and description Supports v2 Downloads
koa-session - cookie-based session middleware
koa-session-redis - drop-in replacement for koa-session
koa-session-redis3 - drop-in replacement for koa-session and koa-session-redis
koa-csrf - CSRF tokens
koa-session2 - Middleware for Koa2 to get/set session use with custom stores such as Redis or mongodb
koa-generic-session - connect-like session middleware
koa-session-minimal - a Koa 2 rewrite of koa-generic-session, support its core functionalities and stores
koa-redis - redis session store base on koa-generic-session
koa-session-mongodb - drop in replacement for koa-session based on Object.observe
koa-mongodb-session yieldable mongodb session modifications
koa-level - LevelDB session store for koa-generic-session
koa-flash - flash messages for koa-session
koa-flash-simple - Stupidly simple flash messages for koa v2

Templating

Name and description Supports v2 Downloads
koa-locals - local variables for templates render, use of ctx.state instead of ctx.locals
koa-views - Render your views with almost any templating engine
koa-ejs - Focus on ejs and support full feature include layout, filters, locals, include.
co-ejs - koa ejs view render middleware.
koa-dom - server-side dom templating
koa-swig - Focus on swig, support tags, filters, and extensions.
koa-swig-render - Focus on swig, used as a middleware.
koa-hbs - Express-style Handlebars view rendering.
koa-jade - a Jade middleware for Koa
koa-handlebars - Handlebars view rendering
koajs-nunjucks - Nunjucks view rendering
koa-view - Nunjucks view rendering
koa-pug - a Pug (renamed Jade) middleware for Koa
koa-artpl - koa artTemplate engine
koa-nunjucks-next - Nunjucks view rendering, support asynchronous filters, render raw string

Services

Name and description Supports v2 Downloads
koa-pg - Handle your Pg database connections automatically.
koa-mongo - MongoDB middleware for koa, support connection pool.
koa-redis-pool - Redis middleware for koa, support connection pool.
koa-waterline koa middlware for your waterline orm
koa-pgp koa middlware that speaks pgp
koa-redisy koa wrapper for co-redis, which is a wrapper for node-redis
rethinkdbdash - RethinkDB driver with promises and a connection pool.
component-koa - koa middleware for component builds
koa-pagination - Handle Range Pagination Headers using Range & Content-Range entity-headers.
koa-graphql - Koa middleware for creating a GraphQL HTTP server.
koa-graphiql - Koa middleware for serving a GraphiQL IDE.
koa-mongoose - mongoose middleware for koa

CSS Preprocessor

Name and description Supports v2 Downloads
koa-stylus - Stylus middleware for Koa
koa-less - LESS middleware for Koa
koa-lessie - LESS middleware (lighter implementation)
koa-myth - Wraps a myth or rework instance into a koa middleware
koa-scss - SCSS middleware for Koa
koa-postcss - PostCSS middleware for Koa

Livereload

Name and description Supports v2 Downloads
koa-livereload - koa middleware for adding livereload.js

Error reporting

Name and description Supports v2 Downloads
koa-error - text, json, html error responses with swig template support
koa-errorhandler - Error handler middleware for koa.
http-assert - assert with status codes
koa-error-ejs - text, json, html error responses with ejs template support
koa-notifier - Wrap node-notifier for koa, cute for test.
onerror - an error handler for koa, hack ctx.onerror
koa-error-slack - Send Koa errors to Slack

Logging

Name and description Supports v2 Downloads
koa-logger - development style logger
koa-mongolog - logging http queries to MongoDB
~~koa-mongodb-logger - log and profile Koa requests to MongoDB~
koa-log4js - log4js logger middleware for koa
koa-log4 - a wrapper for log4js-node which supports koa middleware
koa-request-id - Add a request id
koa-bunyan - Using node-bunyan as koa logging middleware
koa-bunyan-logger - Koa middleware for bunyan request logging
json-error - error handler for pure-JSON apps
koa-json-logger - HTTP Request/Response/Error JSON format logger
koa-logger2 - Apache like (combined) logging for koajs
koa-sentry - Koa middleware for Sentry logging platform
koa-raven - Raven middleware for koa
koa-morgan - Morgan for koa
koa-winston - Winston wrapper for koa
koa-slowlog - slowlog for koa, based on co-slowlog

Metrics

Name and description Supports v2 Downloads
koa-statsd - statsd integration
koa-response-time - x-response-time header field middleware
koa-ping - ping and health route for app status check
koa-monitor - Realtime monitoring for koa-based Node applications

Analytics

Name and description Supports v2 Downloads
koa-analytics - easily add analytics to your koa app

i18n or L10n

Name and description Supports v2 Downloads
koa-locale - Get locale variable from query, subdomain, accept-languages or cookie
koa-i18n - Lightweight simple translation middleware based on i18n-2

Response Transformation

Name and description Supports v2 Downloads
koa-response-censor - Strip keys from the response body
koa-snake-res - Snake case json response transform middleware for koa
koa-res - Format koa's respond json.

Utilities

Misc utilities that are useful for Koa applications. Note that co lets you yield a variety of types, so existing libraries using promises etc should work fine.

Name and description Supports v2 Downloads
co-punch - Punch old libraries!
cofy - Cofy is a bridge connecting callback style object to sequential style in co or koa environment with one punch.
koa-compose - compose several middleware into one
koa-convert - convert koa legacy ( v0.x & v1.x ) generator middleware to promise middleware ( v2.x )
shen - Shen is underscore for generators
koa-aspect - AOP for Koa.
co libraries - thunk-based libraries that work with Koa -
koa-add-to-context - middleware to add all enumerable keys to the context of each request
koa-use - Overwrite koa's use(), add Array support.

Aggregates

Aggregate modules make including common suites of middleware in your application(s) easier. This mimics the convenience of Connect's bundled middleware without forcing them on people.

  • common - mount, logger, response-time, static
  • opinion - my opinion on what's needed to get started

Applications

Application list using Koa.

  • cnpmjs.org - Private npm registry and web for Enterprise, base on koa, MySQL and Simple Store Service.
  • icp.c.163.com - A full stack development practice, base on koa, react, MySQL,nos and redis Store Service.
  • component-crawler - component.json crawler
  • DailyNode - A complete, timely aggregator of node things: blog, tutorial, video, npm, tool, framework, conf.
  • Badgelino - Very much work in progress. Fast, extensible badges server. Badges done right. Routes done right.
  • Booooring.com - Soundtrack of you office. Using streaming to send small mp3 files smoothly.
  • N-club - A simple forum.

Screencasts