![awesome koa](https://github.frapsoft.com/top/awesome-koa.jpg) # Awesome Koa [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Javascript](https://badges.frapsoft.com/javascript/code/javascript.svg?v=100)](https://github.com/ellerbrock/javascript-badges/) [![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=102)](https://github.com/ellerbrock/open-source-badges/) [![Gitter Chat](https://badges.gitter.im/frapsoft/frapsoft.svg)](https://gitter.im/frapsoft/frapsoft/) > Useful resources for creating apps and working with [Koa](http://koajs.com) - [Links](#links) - [Examples & Boilerplates](#examples--boilerplates) - [Middleware](#middleware) - [Others](#others) - [Videos](#videos) ## Status [![Deadlink Test](https://travis-ci.org/ellerbrock/awesome-koa.svg?branch=master)](https://travis-ci.org/ellerbrock/awesome-koa) **Info:** Green Build Status means there should be no Deadlinks in this List.
You can find the Testfiles on [travis-deadlink-scanner](https://github.com/ellerbrock/travis-deadlink-scanner). ## Links - [Koa](https://github.com/koajs/koa) - Expressive middleware for node.js using generators - [co](https://github.com/tj/co) - The ultimate generator based flow-control goodness for nodejs ## Examples & Boilerplates - [koa-rest-api-boilerplate](https://github.com/posquit0/koa-rest-api-boilerplate) - Boilerplate for Node.js Koa RESTful API application with Docker, Swagger, Jest, Coveralls and CircleCI - [api-boilerplate](https://github.com/koajs/api-boilerplate) - API application boilerplate - [kick-off-koa](https://github.com/koajs/kick-off-koa) - An intro to koa via a set of self-guided workshops - [workshop](https://github.com/koajs/workshop) - Koa Training Workshop - [examples](https://github.com/koajs/examples) - Example Koa apps - [babel-es6-es7-npm-skeleton](https://github.com/ellerbrock/babel-es6-es7-npm-skeleton) - Babel ES6 / ES7 - Testing, Benchmark, Auto Reload, Linting - [K2](https://github.com/hongymagic/k2) - Koa2, Babel ES6/7, GraphQL, passport-local based authentication, PostgreSQL, Jest for Unit and Integration testing and more - [koa-firebase](https://github.com/antonybudianto/koa-firebase) - Koa with Firebase middleware integration starter - [koalerplate](https://github.com/dbalas/koalerplate) - A simple Koa 2 boilerplate for API's using ES6. - [koa-hasura](https://hasura.io/hub/project/hasura/hello-nodejs-koa) - Koa app starter kit with Hasura deployment - [koa2-api-boilerplate](https://github.com/valera-shulghin/koa2-api-boilerplate) - Koa2, Knex, es6-error, Gulp, ApiDoc, ESLint, koa-validate, JWT. - [koa-user-api-boilerplate](https://github.com/maotora/koa-userapi) - User API boilerplate using Koa2, Full ES6 & 7 support, Passport & JWT with tests. - [koa-blog-api-boilerplate](https://github.com/maotora/koa-blogapi) - Blog API extended from [koa-user-api-boilerplate](https://github.com/maotora/koa-userapi) authentication layer with ES6 & 7 support. ## Tutorials - [Building a RESTful API with Koa and Postgres](http://mherman.org/blog/2017/08/23/building-a-restful-api-with-koa-and-postgres) - [User Authentication with Passport and Koa](http://mherman.org/blog/2018/01/02/user-authentication-with-passport-and-koa) **Info:** Lots of the Examples and Boilerplattes are outdated.
Also some of the features not work straight out of the Box with the new Version.
I'm working on a Boilerplatte with all the cutting edge stuff and will publish it later on my [GitHub Account](https://github.com/ellerbrock). ## Middleware - [accesslog](https://github.com/koajs/accesslog) - Middleware for common log format access logs - [api-boilerplate](https://github.com/koajs/api-boilerplate) - API application boilerplate - [atomic-session](https://github.com/koajs/atomic-session) - Atomic sessions for Koa - [badgeboard](https://github.com/koajs/badgeboard) - [basic-auth](https://github.com/koajs/basic-auth) - blanket basic auth middleware - [body-parsers](https://github.com/koajs/body-parsers) - collection of koa body parsers - [bodyparser](https://github.com/koajs/bodyparser) - a body parser for koa - [bundle](https://github.com/koajs/bundle) - Generic asset pipeline with caching, etags, minification, gzipping and sourcemaps. - [bunyan-logger](https://github.com/koajs/bunyan-logger) - Koa middleware for bunyan request logging - [cash](https://github.com/koajs/cash) - HTTP response caching for Koa - [charset](https://github.com/koajs/charset) - use iconv-lite to encode the body and set charset to content-type - [cluster](https://github.com/koajs/cluster) - Koa clustering and error handling utility - [compose](https://github.com/koajs/compose) - Middleware composition utility - [compress](https://github.com/koajs/compress) - Compress middleware for koa - [conditional-get](https://github.com/koajs/conditional-get) - Conditional GET middleware for koa - [convert](https://github.com/koajs/convert) - Convert koa generator-based middleware to promise-based middleware - [cors](https://github.com/koajs/cors) - Cross-Origin Resource Sharing(CORS) for koa - [cross-cookies](https://github.com/koajs/cross-cookies) - Easily set cookies across subdomains - [csrf](https://github.com/koajs/csrf) - CSRF tokens for koa - [ctx-basic-auth](https://github.com/koajs/ctx-basic-auth) - Augments Koa with ctx.basicAuth - [ctx-cache-control](https://github.com/koajs/ctx-cache-control) - Augment Koa with ctx.cacheControl(maxAge) - [ctx-paginate](https://github.com/koajs/ctx-paginate) - Augments Koa with ctx.paginate - [ejs](https://github.com/koajs/ejs) - a koa view render middleware, support all feature of ejs - [error](https://github.com/koajs/error) - Error response middleware (text, json, html) - [etag](https://github.com/koajs/etag) - ETag support for Koa responses - [examples](https://github.com/koajs/examples) - Example Koa apps - [favicon](https://github.com/koajs/favicon) - Koa middleware for serving a favicon - [file-server](https://github.com/koajs/file-server) - file serving middleware for koa - [generic-session](https://github.com/koajs/generic-session) - koa session store with memory, redis or others. - [html-minifier](https://github.com/koajs/html-minifier) - minify HTML responses like some crazy guy - [is-json](https://github.com/koajs/is-json) - check if a koa body should be interpreted as JSON - [joi-router](https://github.com/koajs/joi-router) - Configurable, input and output validated routing for koa - [json](https://github.com/koajs/json) - pretty-printed JSON response middleware - [json-error](https://github.com/koajs/json-error) - Error handler for pure-JSON apps - [json-filter](https://github.com/koajs/json-filter) - Middleware allowing the client to filter the response to only what they need, reducing the amount of traffic over the wire. - [jwt](https://github.com/koajs/jwt) - Koa middleware for validating JSON Web Tokens - [kick-off-koa](https://github.com/koajs/kick-off-koa) - An intro to koa via a set of self-guided workshops - [koa](https://github.com/koajs/koa) - Expressive middleware for node.js using generators - [koa-body-clean](https://github.com/rferro/koa-body-clean) - Koa middleware for auto cleanup files created to disk by multipart middlewares - [koa-fresh](https://github.com/koajs/koa-fresh) - koa-fresh: HTTP response freshness testing middleware base on koa and node-fresh - [koa-github](https://github.com/koajs/koa-github) - simple github auth middleware for koa - [koa-lusca](https://github.com/koajs/koa-lusca) - koa version of lusca. Application security for koa. - [koa-markdown](https://github.com/koajs/koa-markdown) - Auto convert markdown to html for koa. Inspired by connect-markdown - [koa-range](https://github.com/koajs/koa-range) - range request implementation for koa, see - [koa-redis](https://github.com/koajs/koa-redis) - koa session with redis - [koa-response-handler](https://github.com/potatogopher/koa-response-handler) - lightweight response handler for koa - [koa-roles](https://github.com/koajs/koa-roles) - koa version of Connect-Roles - [koa-rt](https://github.com/koajs/koa-rt) - koa rt with microtime - [koa-custom-response](https://github.com/DhyanaChina/koa-custom-response) - standard RESTful API for koa - [koa-typescript-guide](https://github.com/WittBulter/koa2-typescript-guide) the best practice of building Koa2 with TypeScript - [koa-twig](https://github.com/jean-smaug/koa-twig) - use twig as template engine - [koa-safe-jsonp](https://github.com/koajs/koa-safe-jsonp) - Safe jsonp plusins for koa. - [koa.io](https://github.com/koajs/koa.io) - Realtime web framework combine koa and socket.io. - [koa-ts-controllers](https://github.com/iyobo/koa-ts-controllers) - Typescript/decorator based Rest controller/router for Koa2+. - [koala](https://github.com/koajs/koala) - [SEEKING MAINTAINER] An HTTP/2 and ES6 Module-ready Koa Suite - [locales](https://github.com/koajs/locales) - koa locales, i18n solution for koa - [logger](https://github.com/koajs/logger) - Development style logging middleware - [maxrequests](https://github.com/koajs/maxrequests) - Limit max requests on each http keepalive connection. - [middleware-hook](https://github.com/koajs/middleware-hook) - low-level hooks for your middleware - [mock](https://github.com/koajs/mock) - Simple web page mock middleware - [mount](https://github.com/koajs/mount) - Mount other Koa applications or middleware to a given pathname - [onerror](https://github.com/koajs/onerror) - an error handler for koa, hack ctx.onerror - [override-method](https://github.com/koajs/override-method) - method override utility for koa - [parameter](https://github.com/koajs/parameter) - parameter validate middleware for koa, powered by parameter - [path-match](https://github.com/koajs/path-match) - koa route middleware - [qs](https://github.com/koajs/qs) - qs for koa, and use querystring more safely. - [querystring-strict](https://github.com/koajs/querystring-strict) - THIS REPOSITORY IS NOW DEPRECATED - [ratelimit](https://github.com/koajs/ratelimit) - Rate limiter middleware - [react-view](https://github.com/koajs/react-view) - A Koa view engine which renders React components on server - [redis-session-sets](https://github.com/koajs/redis-session-sets) - Koa Redis sessions with field-referencing cross sets - [resourcer](https://github.com/koajs/resourcer) - A simple resource directory mounter for koa. - [resourcer-docs](https://github.com/koajs/resourcer-docs) - Simple app that generates documentation for routes mounted using koa-resourcer. - [response-time](https://github.com/koajs/response-time) - X-Response-Time middleware - [rewrite](https://github.com/koajs/rewrite) - URL rewriting middleware - [route](https://github.com/koajs/route) - Simple route middleware - [s3-cache](https://github.com/koajs/s3-cache) - Koa middleware to cache and serve from S3 - [send](https://github.com/koajs/send) - Transfer static files - [sendfile](https://github.com/koajs/sendfile) - basic file-sending utility for koa - [session](https://github.com/koajs/session) - Simple cookie-based session middleware - [snapshot](https://github.com/koajs/snapshot) - take snapshot when request, cache by request path. - [stateless-csrf](https://github.com/koajs/stateless-csrf) - CSRF without sessions. - [static](https://github.com/koajs/static) - Static file server middleware - [static-cache](https://github.com/koajs/static-cache) - Static cache for koa - [statsd](https://github.com/koajs/statsd) - Statsd middleware - [timer](https://github.com/koajs/timer) - time your middleware - [todo](https://github.com/koajs/todo) - a todo example write with koa and react - [trace](https://github.com/koajs/trace) - generic tracing for koa - [trace-influxdb](https://github.com/koajs/trace-influxdb) - InfluxDB tracing for koa-trace - [trie-router](https://github.com/koajs/trie-router) - Trie-routing for Koa - [userauth](https://github.com/koajs/userauth) - koa user auth middleware - [workshop](https://github.com/koajs/workshop) - Koa Training Workshop - [koa-protect](https://github.com/may215/koa-protect) - Security module for koa applications - [koache](https://github.com/jean-smaug/koache) - Koa cache based on node-cache - [koa-json-rpc](https://github.com/koalex/koa-json-rpc) - JSON-RPC 2.0 middleware which implements the [https://www.jsonrpc.org/specification](https://www.jsonrpc.org/specification) ## Generators - [Generators](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator) - Mozilla Developer Network (MDN) ## Videos - [KnowThen](http://knowthen.com/category/node-js/) - Videos about Koa and Generators - [Generators in JavaScript](https://youtu.be/ategZqxHkz4) - What, Why and How ## Other Web Development Lists - [Atom for Web Developer](https://github.com/ellerbrock/atom-for-webdeveloper) - Useful Packages and Configuration for a better Workflow - [Node.js for Web Developers](https://github.com/ellerbrock/nodejs-for-webdeveloper) - Full Stack Javascript Development with Node.js - [Chrome Extensions for Web Developer](https://github.com/ellerbrock/chrome-extensions-for-webdeveloper) - A list with useful Chrome Extensions - [Publishing NPM Packages for Developers](https://github.com/ellerbrock/publishing-npm-packages) - Introduction how to write and publish npm Modules. - [Awesome Typescript](https://github.com/ellerbrock/awesome-typescript) - A collection of awesome TypeScript resources. - [Docker Tutorial](https://github.com/ellerbrock/docker-tutorial) - Getting Started with Docker. - [Fish Shell Setup OS X](https://github.com/ellerbrock/fish-shell-setup-osx) - Terminal Setup for OS X with Fish Shell, Fisherman, Powerline Fonts and iTerm2. ### Contact / Social Media _Get the latest News about Web Development, Open Source, Tooling, Server & Security_ [![Twitter](https://github.frapsoft.com/social/twitter.png)](https://twitter.com/frapsoft/)[![Facebook](https://github.frapsoft.com/social/facebook.png)](https://www.facebook.com/frapsoft/)[![Google+](https://github.frapsoft.com/social/google-plus.png)](https://plus.google.com/116540931335841862774)[![Gitter](https://github.frapsoft.com/social/gitter.png)](https://gitter.im/frapsoft/frapsoft/)[![Github](https://github.frapsoft.com/social/github.png)](https://github.com/ellerbrock/) ### Development by Developer / Author: [Maik Ellerbrock](https://github.com/ellerbrock/)
Company: [Frapsoft](https://github.com/frapsoft/) ### License [![Creative Commons License](https://i.creativecommons.org/l/by/4.0/88x31.png)](http://creativecommons.org/licenses/by/4.0/)
This work by [Maik Ellerbrock](https://github.com/ellerbrock/) is licensed under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/). [koa.md Github](https://github.com/ellerbrock/awesome-koa )