Skip to content
🚀 Starter for building APIs with Hapi + Typescript!
Branch: master
Clone or download
Latest commit 84c67d4 Jan 28, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
data initial commit Jun 30, 2017
logs initial commit Jun 30, 2017
src Different approach to heroku deployments. Jan 16, 2019
test Different approach to heroku deployments. Jan 16, 2019
Dockerfile Add support for uuid generation for user Jul 1, 2017
Procfile Updated readme. Jan 16, 2019
package.json Different approach to heroku deployments. Jan 16, 2019
tsconfig.json Different approach to heroku deployments. Jan 16, 2019
tslint.json Major changes: Aug 16, 2017
yarn.lock Stop server immediately without waiting. Use Yarn for package depende… Jan 15, 2019

TypeScript + Hapi = <3

This is a super simple starter kit to develop APIs with HapiJS + TypeScript

What currently supports?

This starter kit comes with the following features:

  • Swagger-UI
  • Status Monitor
  • .env files support
  • nodemon for hot-reload
  • Pretty Console Logger with Winston
  • Work with Yarn or NPM 6 as dependency resolvers
  • Code formatting with Prettier as hook for Pre-commit
  • Dockerfile + docker-compose for development
  • Basic Test Suite with Tape
  • Coverage Report
  • Supports Heroku Deployment


  • NodeJS 10.x
  • Yarn 1.x

How to use it?

  1. Download this project as a zip.
  2. Run yarn install
  3. Run npm run nodemon:start
  4. Visit http://localhost:8080/documentation to view swagger docs.
  5. Visit http://localhost:8080/api/users to test the REST API.
  6. Visit http://localhost:8080/status to view the status monitor.

OUTDATED: Now there's a CLI that currently support creating a new project from this repo: create-typescript-api


This is not finished, there's still a lot of things to improve. Here you got some:

  • Simple test suite - added by the help of @jcloutz
  • Add support for test coverage - added by the help of @jcloutz
  • Add GraphQL support
  • Add support for Auth with JWT or Sessions
  • Add support for TypeORM/Mongoose
  • Add support for Jenkins pipeline


What are the package.json scripts for?

  • build-ts: Compiles typescript based on config set in tsconfig.json.
  • start: Starts node with the compiled typescript. Used by eg. Heroku.
  • docker:logs: View Docker logs
  • docker:ps: List Docker containers
  • docker:start: Start Docker container based on docker-compose.yml file.
  • docker:stop: Stop Docker container
  • nodemon:build: Starts the Nodemon using ts-node. No need to compile beforehand.
  • nodemon:start: Same as nodemon:build
  • format:lint: Runs tslint on the typescipt files, based on tslint.js settings.
  • format:prettier: Runs prettier on all ts-files.
  • postinstall: Runs build-ts script. This is used by eg. Heroku automatically.
  • test: Runs tests using nyc, and creates coverage report.


If you found a bug, or you have an answer, or whatever. Please, raise an issue.


Of course, if you see something that you want to upgrade from this library, or a bug that needs to be solved, PRs are welcome!


Distributed under the MIT license. See LICENSE for more information.

You can’t perform that action at this time.