Node is at the moment my favourite platform to write backends, especially APIs. Node.js enjoys such a massive popularity not only because of its performance and JavaScript popularity, but also due to its huge ecosystem and community. It's very easy to get lost. In this blog post I have put a list of my favourite Node.js Github repositories, but without any frameworks or modules repositories (as there are gazillions) you might not be aware of and help you get started with Node.js.
Node
The source code for Node.js itself. Very useful here is the CHANGELOG
Node.js
Node.js is an open-source, cross-platform JavaScript runtime environment.
For information on using Node.js, see the Node.js website.
The Node.js project uses an open governance model. The OpenJS Foundation provides support for the project.
Contributors are expected to act in a collaborative manner to move the project forward. We encourage the constructive exchange of contrary opinions and compromise. The TSC reserves the right to limit or block contributors who repeatedly act in ways that discourage, exhaust, or otherwise negatively affect other participants.
This project has a Code of Conduct.
Table of contents
- Support
- Release types
- Building Node.js
- Security
- Contributing to Node.js
- Current project team members
- License
Support
Looking for help? Check out the instructions for getting support.
Release types
- Current: Under active development. Code for the…
Node Version Manager
nvm is a version manager for node.js, designed to be installed per-user, and invoked per-shell. nvm works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and windows WSL
nvm-sh / nvm
Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions
Table of Contents
- Intro
- About
- Installing and Updating
- Usage
- Running Tests
- Environment variables
- Bash Completion
- Compatibility Issues
- Installing nvm on Alpine Linux
- Uninstalling / Removal
- Docker For Development Environment
- Problems
- macOS Troubleshooting
- WSL Troubleshooting
- Maintainers
- Project Support
- Enterprise Support
- License
- Copyright notice
Intro
nvm
allows you to quickly…
Node Version Manager for Windows
Manage multiple installations of node.js on a Windows computer.
tl;dr nvm, but for Windows, with an installer.
coreybutler / nvm-windows
A node.js version management utility for Windows. Ironically written in Go.
Notice: We have started full time work on Runtime, the successor to NVM for Windows.
Updates will also be posted on the Author Software LinkedIn Page.
NVM for Windows
This is not the same thing as nvm! (expand for details)
The original nvm is a completely separate project for Mac/Linux only. This project uses an entirely different philosophy and is not just a clone of nvm. Details are listed in Why another version manager? and what's the big difference?.
Sponsors
Can't sponsor? Consider nominating @coreybutler for a Github star. |
Seeking Feedback: |
The art of Node
Ok, so to get your hands (no)derty can start with this repo, which is a short introduction to Node.js
max-mapper / art-of-node
❄️ a short introduction to node.js
The Art of Node
An introduction to Node.js
This document is intended for readers who know at least a little bit of a couple of things:
- a scripting language like JavaScript, Ruby, Python, Perl, etc. If you aren't a programmer yet then it is probably easier to start by reading JavaScript for Cats. 🐈
- git and github. These are the open source collaboration tools that people in the node community use to share modules. You just need to know the basics. Here are three great intro tutorials: 1, 2, 3
Table of contents
- Learn node interactively
- Understanding node
- Core modules
- Callbacks
- Events
- Streams
- Modules and npm
- Client side development with npm
- Going with the grain
Learn node interactively
In addition to reading this guide it's super important to also bust out your favorite text editor and actually write some node code. I always find that when I…
Nodemon
When it comes to development nodemon is a must have. It is a tool that helps you develop node.js based applications by automatically restarting the node application when file changes in the directory are detected.
remy / nodemon
Monitor for any changes in your node.js application and automatically restart the server - perfect for development
nodemon
nodemon is a tool that helps develop Node.js based applications by automatically restarting the node application when file changes in the directory are detected.
nodemon does not require any additional changes to your code or method of development. nodemon is a replacement wrapper for node
. To use nodemon
, replace the word node
on the command line when executing your script.
Installation
Either through cloning with git or by using npm (the recommended way):
npm install -g nodemon # or using yarn: yarn global add nodemon
And nodemon will be installed globally to your system path.
You can also install nodemon as a development dependency:
npm install --save-dev nodemon # or using yarn: yarn add nodemon -D
With a local installation, nodemon will not be available in your system path or you can't use it directly from the command line. Instead, the local installation of nodemon can be…
Awesome Node.js
I love the awesome lists. So much that I have bookmarked most of them and made them searchable on Bookmarks.dev
Here is the one for Node.js:
sindresorhus / awesome-nodejs
⚡ Delightful Node.js packages and resources
My open source work is supported by the community
Special thanks to:Add Single Sign-On (and more) in minutes instead of months.
Just type node.cool
to go here. Follow me on Twitter.
Node.js is an open-source, cross-platform, JavaScript runtime for writing servers and command-line tools
Contents
- Official
-
Packages
- Mad science
- Command-line apps
- Functional programming
- HTTP
- Debugging / Profiling
- Logging
- Command-line utilities
- Build tools
- Hardware
- Templating
- Web frameworks
- Documentation
- Filesystem
- Control flow
- Streams
- Real-time
- Image
- Text
- Number
- Math
- Date
- URL
- Data validation
- Parsing
- Humanize
- Compression
- Network
- Database
- Testing
- Security
- Benchmarking
- Minifiers
- Authentication
- Authorization
- Job queues
- Node.js management
- …
Awesome NPM
From the same author but for npm
sindresorhus / awesome-npm
Awesome npm resources and tips
Awesome npm resources and tips
npm is a package manager for the JavaScript programming language and comes bundled in the Node.js runtime.
Please read the contribution guidelines before contributing.
Contents
Articles
- Small focused modules
- Unix philosophy and Node.js - Write programs that do one thing and do it well.
- Writing small modules
- Semver: A Primer (Must read!)
- Semver: Tilde and Caret
- Offline installation of npm packages
- Task automation with npm run
- How to use npm as a build tool
- Install npm packages globally without sudo on macOS and Linux
- Optimizing the footprint of an npm package
- The Art of Node - An introduction to Node.js and client-side development with npm.
- Why npm scripts? - An introduction to npm scripts with common packages and scripts, as well as a boilerplate project.
Tools
Web
- npms - Superb package search with…
Awesome Node Security
Another Node.js related awesome list is
lirantal / awesome-nodejs-security
Awesome Node.js Security resources
A curated list of awesome Node.js Security resources.
Learn Node.js Secure Coding techniques and best practices from Liran Tal
Contents
Tools
Web Framework Hardening
- Helmet - Helmet helps you secure your Express apps by setting various HTTP headers.
- koa-helmet - koa-helmet helps you secure your Koa apps by setting various HTTP headers.
- blankie - CSP plugin for hapi.
- fastify-helmet - fastify-helmet helps you secure your fastify apps by setting important security headers.
- nuxt-security - 🛡 Security Module for Nuxt based on OWASP Top 10 and Helmet.
- reporting-api - Setup and collect CSP, Reporting API v0 and v1 reports to reliabily parse them to be processed by the user
GitHub Actions and CI/CD Security
- New…
Docker node official image
The official Docker Node image with best practices
nodejs / docker-node
Official Docker Image for Node.js 🐳 🐢 🚀
Node.js
The official Node.js docker image, made with love by the node community.
Table of Contents
- What is Node.js?
- How to use this image
- Image Variants
- License
- Supported Docker versions
- Supported Node.js versions
- Governance and Current Members
What is Node.js?
Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
See: http://nodejs.org
How to use this image
Create a Dockerfile
in your Node.js app project
# specify the node base image with your desired version node:<version>
FROM node:16
# replace this with
…Microsoft + Node.js Guidelines
microsoft / nodejs-guidelines
Tips, tricks, and resources for working with Node.js, and the start of an ongoing conversation on how we can improve the Node.js experience on Microsoft platforms.
Microsoft + Node.js Guidelines
Microsoft ❤️ Node.js!
We work hard to contribute to the Node.js community and we want to make sure your experience is as seamless as possible. In particular, our goals here are to:
- make it easier for people using Microsoft services and technologies to get started on the right foot with Node.js
- consolidate Microsoft's Node.js offerings in a centralized place to make it easier for you to find information
- communicate status on key issues we're addressing and collect feedback from the Node.js community on how we can do better.
- provide a forum to connect with various teams at Microsoft working on improving the Node.js experience.
Note that this is not intended to be a comprehensive set of recommendations. Rather it's meant to be a helpful set of content that makes it easier to avoid any potential gotchas, and the beginning of what we expect to be an…
How I write backends
fpereiro / backendlore
How I write backends
How I write backends
From late 2012 to the present I have been writing backends (server-side code) for web applications. This document summarizes many aspects of how I write these pieces of code.
I'm writing this lore down for three purposes:
- Share it with you.
- Systematize it for future reference and improvement.
- Learn from your feedback.
Your questions and observations are very welcome!
If you must sting, please also be nice. But above all, please be accurate.
I'd like to thank everyone who joined in the HN discussion of this document and pointed out or stimulated many interesting points that I had missed. I'm humbled and grateful for the tremendously positive and constructive feedback I received. Y'all rock.
This is all public domain; take whatever you find useful.
The approach
My approach to backends (as with code in general) is to iteratively strive for simplicity. This approach - and…
Node.js Best Practices
You are, in fact, reading dozens of the best Node.js articles - this repository is a summary and curation of the top-ranked content on Node.js best practices, as well as content written here by collaborators
goldbergyoni / nodebestpractices
✅ The Node.js best practices list (July 2024)
Node.js Best Practices
Follow us on Twitter! @nodepractices
Read in a different language: CN, FR, BR, RU, PL, JA, EU (ES, HE, KR and TR in progress! )
🎊 2024 edition is here!
-
🛰 Modernized to 2024: Tons of text edits, new recommended libraries, and some new best practices
-
✨ Easily focus on new content: Already visited before? Search for
#new
or#updated
tags for new content only -
🔖 Curious to see examples? We have a starter: Visit Practica.js, our application example and boilerplate (beta) to see some practices in action
Welcome! 3 Things You Ought To Know First
1. You are reading dozens of the best Node.js articles - this repository is a summary and curation of the top-ranked content on Node.js best practices, as well as content written here by collaborators
2. It is the…
Codever tagged - [node.js]
Node.js is one of the most tagged languages on Codever. The public bookmarks are shared into this Github repository and most likely all the above listed are referenced from this git repo.
CodeverDotDev / bookmarks
🔖 ⭐ Collection of public dev bookmarks, shared with ❤️ from www.codever.dev
Tags
Most used | Alphabetical |
---|---|
[free-programming-books] x 2726 | [.net] x 27 |
[go] x 1806 | [.net-core] x 6 |
[javascript] x 1116 | [3d] x 1 |
[java] x 1020 | [3d-modelling] x 1 |
[ruby] x 980 | [ab-testing] x 5 |
[python] x 905 | [abstract-syntax-tree] x 1 |
[node.js] x 864 | [abstraction] x 16 |
[cpp] x 806 | [access-control] x 1 |
[kubernetes] x 683 | [access-token] x 2 |
[rust] x 618 | [accessibility] x 4 |
[reactjs] x 504 | [ace-editor] x 2 |
[awesome-list] x 485 | [action-script] x 2 |
[graphql] x 396 | [actionscript-3] x 1 |
[testing] x 344 | [ada] x 9 |
[free-programming-books-zh] x 343 | [add-on] x 1 |
[tools] x 337 | [admin-interface] x 7 |
[free-programming-books-ja] x 281 | [administration] x 7 |
[libraries] x 246 | [advocates] x 1 |
[database] x 229 | [agda] x 1 |
[rest] x 218 | [aggregation] x 1 |
[angular] x 209 | [aggregator] |
Bookmark and search Node.js resources
These and many more useful Node.js Github resources are easily searchable and bookmarkable on Codever - [node.js] site:github.com
Did I miss an important one? Which one is your favourite?
Top comments (0)