Node Starter Kit

screenshot of Node Starter Kit
express

Node.js / GraphQL project template pre-configured with TypeScript, PostgreSQL, login flow, transactional emails, unit tests, CI/CD workflow.

Overview

Node.js API Starter Kit is a project template for building Node.js backend applications optimized for serverless infrastructure such as Google Cloud Functions, AWS Lambda, Azure Functions, etc. It provides a range of features including database first design, authentication and authorization using OAuth 2.0 providers, stateless sessions, GraphQL API example, database schema migration, transactional emails, structured logs and error reporting, unit testing tooling, and application bundling with Rollup. The template is pre-configured for local, dev, test, and prod environments and is supported by various companies.

Features

  • Database first design: Auto-generated strongly typed data models (TypeScript) from the database schema.
  • Authentication and authorization: Supports OAuth 2.0 providers such as Google, Facebook, and GitHub for authentication and authorization.
  • Stateless sessions: Implements stateless sessions using JWT tokens and a session cookie, compatible with server-side rendering (SSR).
  • GraphQL API example: Implementation of a GraphQL API using the code-first development approach.
  • Database schema migration: Provides tools for managing database schema migrations, seeds, and REPL shell.
  • Transactional emails: Sending transactional emails using Handlebars templates and instant email previews.
  • Structured logs and error reporting: Integration with Google StackDriver for structured logs and error reporting.
  • Unit testing tooling: Pre-configured unit testing using Jest and Supertest.
  • Application bundling: Optimized application bundling with Rollup for serverless deployments.
  • Local development support: Automatically rebuilds and restarts the app on changes when running locally.
  • Pre-configured environment: The template comes pre-configured for local, dev, test, and prod environments.

Summary

Node.js API Starter Kit is a project template for building Node.js backend applications with a focus on serverless infrastructure. It provides a range of features such as database first design, authentication and authorization, GraphQL API support, transactional emails, structured logs, and more. The template is easy to install and configure, making it a convenient choice for developers looking to quickly bootstrap their Node.js backend projects.

express
Express

Express.js is a simple Node.js framework for single, multi-page, and hybrid web applications.

fullstack
Fullstack

A fullstack boilerplate provides a starter application that includes both frontend and backend. It should include database, auth, payments, user roles and other backend services to build a fully featured saas or webapps.

template
Templates & Themes

A template or theme refers to a pre-designed layout or structure that provides a basic framework for building a specific type of application or website. It typically includes good design, placeholder content and functional features, allowing developers to customize and fill in the details according to their specific needs.

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

graphql
Graphql

A website that uses GraphQL as a query language to manage data fetching and state management. This includes features such as a strongly typed schema, client-side caching, and declarative data fetching to streamline data management and optimize website performance.

rollup
Rollup

RollupJS is a popular and efficient JavaScript module bundler that takes the code from multiple modules and packages them into a single optimized file, minimizing the overall size of the application and improving its performance.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.