create-node-app

Create Node.js apps by running one command

Usage no npm install needed!

<script type="module">
  import createNodeApp from 'https://cdn.skypack.dev/create-node-app';
</script>

README

Create Node App CircleCI npm version

Create modern Node.js apps with no build configuration. In a single command, this tool bootstraps a React + Express app and a Postgres Docker container. Created apps closely follow The Twelve Factors of web application development. Inspired by and based on create-react-app.

Terminal Example

Quick start

Creating an App

npx create-node-app my-app
cd my-app
npm start

Creates a new repository and starts a React frontend, an Express backend, and a container for Postgres locally

Deploying to Production

npm run deploy

Containerizes your app and its dependencies (like Postgres) and deploys them to Kubernetes

What’s Included?

create-node-app automatically sets up and manages:

  • A complete web app with React, Express, Postgres
  • A deploy script, npm run deploy that deploys your frontend, backend, and dependencies to Kubernetes via deploy-node-app
  • A DB script npm run psql to explore your Dockerized Postgres
  • Creates a secure Dockerfile for containerized production deploys
  • Developer tools: ESLint, editorconfig, prettier, automatic reload
  • A meta-module system for easy development with services like PostgreSQL, and MongoDB, all with no configuration

create-node-app has a simple core, with a small ecosystem of meta-modules.

Meta-modules

Meta-modules are simple npm modules which include:

  • A validated and secure Node.js library
  • Metadata for configuring the library (Environment Variables)
  • A Docker Container Image which is validated to work with the chosen library
  • Metadata for configuring the service's container

For example, the postgres meta-module bundles the node-postgres library, a Postgres 11 Docker image, and knows how to connect your app to Postgres, without any configuration! Meta-modules wrap some of the complexity of building microservices with Node.js, allowing you to rapidly iterate with the stack of your choice!

Explore modules here or help create them if the one you want doesn't exist!

Free App Hosting

This project is maintained by KubeSail, which provides free-tier hosting. After creating an app, try npm run deploy to easily launch your app on a Kubernetes cluster with built-in load-balancing, HTTPS, and high-availability! KubeSail also offers the best way to iterate on Kubernetes resources - check us out!

Contributing

  • If you feel that this tool can be improved, or you've created a meta-module you want us to include, feel free to open an issue or pull request!
  • We also value contributions on deploy-node-app which contains the bulk of the logic for creating and deploying dev and prod environments.