Skip to content

Latest commit

History

History

legacy

Folders and files

NameName
Last commit message
Last commit date

parent directory

..

JavaScript / Node.js Stack

We have deployed our Node.js stack for many clients and internal apps and achieved good results!
It works well and we have not had any issues with "performance" or "scaling" deploying to AWS.

For an example of app built using our Node.js Stack
see: https://github.com/TheScienceMuseum/collectionsonline

There's no "reason" to "rewrite" any of our existing projects to any other "stack".
Node.js works perfectly well and will continue to be supported for the lifetime of the project(s)

See: "tl;dr" section below if you are interested in why we decided to "evolve" to "PETAL" for new projects...

Overview

The following diagram is an overview of our Node.js stack:

dwyl-stack-with-postgres

Note: To edit/improve this diagram: #1

We have produced a complete beginners guide for each of the components in our stack. (see below)

Open Source Projects We Use

For Us By Us

We craft code to scratch our own itch and everything we do is always Open Source

Project Used For Build Status Test Coverage Dependency Status Tutorial
env2 Loading Environment Variables Build Status Test Coverage dependencies Status learn-environment-variables
esta ElasticSearch CRUD Build Status Test Coverage dependencies Status learn-elasticsearch
goodparts Consistent Code (Linting & Style) Build Status Test Coverage dependencies Status goodparts#why
hapi-auth-jwt2 Authentication & Sessions Build Status Test Coverage dependencies Status learn-json-web-tokens
hapi-error Human-Friendly Error Messages Build Status Test Coverage dependencies Status hapi-error#why
hapi-login User Login Build Status Test Coverage dependencies Status learn-hapi
hapi-postgres-connection Postgres Connection Pooling Build Status Test Coverage dependencies Status learn-postgresql
hapi-redis-connection Simplify Redis Connection Build Status Test Coverage dependencies Status learn-redis
hapi-register User Registration Build Status Test Coverage dependencies Status learn-hapi
hapi-riot Server-side (Fast) Rendering of Riot Tags Build Status Test Coverage dependencies Status learn-riot

Note: to update this table, use the script: generate_dependency_table.js

Dependencies (projects built by people we trust)

  • Node.js - the most popular JavaScript runtime for easily building fast, scalable simple network applications. Lightweight and efficient, perfect for data-intensive real-time apps. https://nodejs.org/
  • Hapi.js - A rich web framework for building applications and services. https://github.com/dwyl/learn-hapi
  • Socket.io - a JavaScript library for realtime web applications. It enables realtime, bi-directional communication between web clients and server. Socket.io lets us send data to/from everyone connected to our app(s) without having to refresh the web page. https://socket.io/
  • Riot.js - is the most light-weight user-interface (UI) framework available which is compatible with IE 8/9 and has good server-side rendering (which means pages load faster for slow devices like budget smart phones). see: https://github.com/dwyl/learn-riot
  • Redis - the most popular in-memory data store which is essential
    for building the fastest possible apps. read more: https://github.com/dwyl/learn-redis
  • ElasticSearch - the most feature-rich search engine. we use it to find things fast. Learn more: https://github.com/dwyl/learn-elasticsearch

Development Dependencies

We carefully select and only use well-maintained "pure" JavaScript modules in our development toolchain: