Lighter-than-air node.js server framework
Clone or download
Latest commit 2fd239e Nov 5, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets Tests (#1) Jan 21, 2017
demo v2 (#30) Aug 24, 2018
docs Lambda (#33) Nov 5, 2018
lib Lambda (#33) Nov 5, 2018
test Lambda (#33) Nov 5, 2018
.eslintrc.js Replace jshint with eslint (#26) Mar 6, 2018
.gitignore v2 (#30) Aug 24, 2018
.npmignore v2 (#30) Aug 24, 2018
.travis.yml Lambda (#33) Nov 5, 2018
LICENSE Add license Jan 13, 2017 Lambda (#33) Nov 5, 2018
index.js v2 (#30) Aug 24, 2018
package.json v2.1.0 Nov 5, 2018
yarn.lock Lambda (#33) Nov 5, 2018


Lighter-than-air node.js server framework.

npm version npm downloads Build Status Coverage Status



The main goal of paperplane is to make building a node.js server easy, without all of the configuration or imperative boilerplate required for other server frameworks. If you prefer to build apps with function composition or even a point-free style, then paperplane is for you.

With paperplane you get all of these out-of-the-box:

Let's try a quick Hello World example server. It accepts a :name param in the url, and then includes that name in the json response body.

const { compose } = require('ramda')
const http = require('http')
const { json, logger, methods, mount, routes } = require('paperplane')

const hello = req => ({
  message: `Hello ${}!`

const app = routes({
  '/hello/:name': methods({
    GET: compose(json, hello)

http.createServer(mount({ app })).listen(3000, logger)

So simple and functional, with an easily readable routing table and pure functions for the route handler. If that sounds like fun to you, then read the Getting started guide or the API docs to learn more.