List of free resources for learning various technologies

Project maintained by zsevic Hosted on GitHub Pages — Theme by mattgraham


List of free resources for learning JavaScript technologies



Introduction to JavaScript

JavaScript Garden

The Complete JavaScript Handbook


The Modern JavaScript Tutorial

JavaScript Visualized

What do the three dots (…) mean in JavaScript?

The magic of the “this” keyword in JavaScript

The difference between call / apply / bind

Javascript Scope Chain and Execution Context simplified

When to use a function declaration vs. a function expression

3 Ways to Set Default Value in JavaScript

5 Tips to Write Better Conditionals in JavaScript

7 Types of Native Errors in JavaScript You Should Know

Don’t use functions as callbacks unless they’re designed for it


Practical Ways to Write Better JavaScript

How to automate your open source JavaScript project’s most repetitive tasks

JavaScripts Regular Expressions Get More Power

How to use Memoize to cache JavaScript function results and speed up your code

A neat little trick with JavaScript’s indexOf()

A simple guide to help you understand closures in JavaScript

Let’s learn about Set and its unique functionality in JavaScript

Iterators and generators

How To Implement Async And Await With Generators

Web Workers in JavaScripts


ES6 for beginners with example

Here are examples of everything new in ECMAScript 2016, 2017, and 2018

Here are the new built-in methods and functions in JavaScript

Includes() vs indexOf() in JavaScript

Async Generator Functions in JavaScript

The Complete Guide to ES10 Features


You Don’t Know JS (book series)


Airbnb JavaScript Style Guide

Node.js Style Guide

Clean Code concepts adapted for JavaScript

Project Guidelines

Grab Front End Guide

Web Developer Roadmap - 2018

Design patterns


Learning JavaScript Design Patterns

The Comprehensive Guide to JavaScript Design Patterns

NodeJS and Good Practices

Node.js and dependency injection – friends or foes?


TypeScript Deep Dive

The Definitive TypeScript Handbook

Learn TypeScript in 5 minutes

TypeScript Essentials

How TypeScript 3.7 Helps Quality

Real Time Apps with TypeScript: Integrating Web Sockets, Node & Angular

Use TypeScript to Build a Node API with Express



The definitive Node.js handbook

Before you bury yourself in packages, learn the Node.js runtime itself

All about Core NodeJS — Part 1

How to Use ECMAScript Modules in Node.js

Your Guide to Building Beautiful Node.js Applications

Node.js Best Practices

Exploring the Possibilities of Node’s Virtual Machine Module

An Overview of What Was New in Node 12

Creating an Application Performance Monitor Using Node 14 New and Experimental Features

Debug Your Node.js App in 60 Seconds

A Practical Guide to Memory Leaks in Node.js


Refactoring node.js (Part 1)

Scaling Node.js Applications

Get started with validation in Node.js

How to get create-react-app to work with a Node.js back-end API

Node js Elastic Search Tutorial Example

Clustering & Inter Process Communication (IPC) in Node.js

Securing your Node js api with JSON Web Token

Salt Hash passwords using NodeJS crypto

Inspect your node application on a different machine

Using import/export in node.js with esm

Bundle your Node app to a single executable for Windows, Linux and OsX

How to create a Task Scheduler in NodeJS

Building Distributed Systems with Node.js

How to build a web crawler with Node

How to Optimize Node Requests with Simple Caching Strategies

Graceful Shutdown with NodeJS and Terminus

The Node.js Application Maintainer Guide

Node.js Import Aliases

Popular Node.js patterns and tools to re-consider

Managing your Node.js installation


A Guide to CLIs with Node.js

How to make beautiful, simple CLI apps with Node

How to build a CLI tool in NodeJS


Learn Express


A Crash Course in NestJS

Getting Started With NestJS

API with NestJS

How to Use Versioning in NestJS


Deno 1.0

Deno 1.0: What you need to know

Deno: Node.js Killer? Introduction & Demo

The Deno Handbook: A TypeScript Runtime Tutorial with Code Examples

From Node to Deno


Node.js Security Best Practices

23+ Node.js security best practices

Going surfing – Protect your Node.js app from Cross-Site Request Forgery

GraphQL security in Node.js project

Process managers

How Do You Start a Node.js Server in Production?

Frontend libraries/frameworks


The React Handbook

How to Learn React — A roadmap from beginner to advanced

Create React apps with no build configuration

How to Setup a Fresh React App

A Complete Beginner’s Guide to React Router (including Router Hooks)

8 simple steps to start testing React Apps using React Testing Library and Jest

React Testing Crash Course

How to replace Component lifecycle with useEffect hook in React?

How to mimic componentDidUpdate() with React Hooks

How to lift your React App performance using Lazy Loading?

How to Handle Errors in React


How I Created My Blog With Gatsby

Creating a Gatsby blog from scratch


An Angular 5 Tutorial: Step by Step Guide to Your First Angular 5 App

The best ways to connect to the server using Angular CLI

CLI tool for Angular


Learn Vue.js for free

Getting Started With Vue Router

How you can test your Vue.js apps in less than seven minutes

Firebase + Vue → Track Users Location Real-Time On The Google Maps

State management


Learn Redux In One Video - Redux / React Tutorial

7 steps to understand React Redux

Redux VS React Context: Which one should you choose?


Active Record vs Data Mapper


The MongoDB basics tutorial

How to use MongoDB with Node.js

Introduction to Mongoose for MongoDB

How to automate database migrations in MongoDB


Why Your Backend in Node.JS Needs an API Layer and How to Build It


Best practices for REST API design

How to build blazing fast REST APIs with Node.js, MongoDB, Fastify and Swagger

Build Interactive API Documentations Easily with Swagger


How to set up a GraphQL Server using Node.js, Express & MongoDB

GraphQL - Node.js

GraphQL - React + Apollo

Getting started - Apollo Server

GraphQL Server Tutorial with Apollo Server and Express


Node, gRPC, and Postgres



NSQ Tutorial: Build a simple message queue using NSQ

How to Implement a Simple Task Queue in Node.js



An introduction to RabbitMQ, a broker that deals in messages

Understanding message queuing systems using RabbitMQ


How to use OpenTelemetry to trace Node.js applications

Desktop apps


How to Build Your First Desktop App with JavaScript Using Electron

Mobile apps

React Native

Learn to use the create-react-native-app for a simple and elegant solution for starting React Native Applications

How to integrate Redux into your application with React Native and Expo


Ionic + React + Firebase

Ionic5 + Firebase + React



You don’t need express to get started with socket.io

Server-Sent Events


Functional programming

How and why to use Functional Programming in modern JavaScript

Reactive programming

The Best Explanation of JavaScript Reactivity

Learn RxJS

RxJS by Example

Reactive programming and Observable sequences with RxJS in Node.js


Deploying Node.js Apps on Heroku

Deploying a Node App to DigitalOcean

How to get started using Firebase Hosting

Host Your Personal Projects on a Single VPS

Deploying a simple Node.js app with HTTPS on cloud providers in 2022


Express.js and AWS Lambda — a serverless love story

Building Serverless GraphQL API in Node with Express and Netlify


Creating a simple Twitter Bot in NodeJs in 20 lines of code

Chat bots

Build a simple chat app with node.js and socket.io

Creating your own Facebook Messenger bot

Add Wit.ai to Your Facebook Messenger bot


Best Practices for Logging in Node.js

Progressive Web Apps

An introduction to Progressive Web Apps

Intro to Progressive Web Apps

Service workers: the little heroes behind Progressive Web Apps

Offline Web Applications

A quick but complete guide to IndexedDB and storing data in browsers

How to provide your own in-app install experience

Data visualization

Learn D3.js in 5 minutes

Package management

What’s what? - Package.json cheatsheet

How to ignore files from your npm package

5 package.json magic scripts that you don’t use!

Create Your First Github Package

Best practices for creating a modern npm package



Publish your first npm package

Create a project using the npm init initializer command

How to publish packages to npm (the way the industry does things)




A guide to unit testing in JavaScript

Unit-testing: best practices

Test frameworks




How to test JavaScript with Jest

Testing with Jest & async/await

Testing Node.js + Mongoose with an in-memory database

The only 3 steps you need to mock an API call in Jest

Assertion libraries


Code coverage

Measure your code coverage using Istanbul (with a demo)



Build system


A collection of simple demos of Webpack

Linters/code formatters


Quick Guide to Linting JavaScript Codebase with ESLint



Continuous Integration


Setup Continuous Integration with Travis CI in Your Nodejs App


Adding Swagger To Existing Node.js Project


Useful packages/tools





How to Dockerize a Node.js application

Reducing Docker’s image size while creating an offline version of Carbon.now.sh

Docker compose

Getting started with Docker for local Node.js development

A beginner’s guide to Docker — how to create a client/server side with Docker-Compose

How to create a full stack React/Express/MongoDB app using Docker


Running a Node.js app with Docker, Kubernetes, and Minikube

Containerizing a Node.js API & Using Docker with Kubernetes and Minikube


Building a Node.js application on Android - Part 1: Termux, Vim and Node.js

How to code Chrome’s T-Rex as a Telegram game using Node.js

Flying a Drone with React and Node.js

NO, you most probably don’t need Express in your Node.js REST API

Choose between Formidable, Busboy, Multer and Multiparty for processing file uploads


Node Weekly

Deno Weekly

Websites with interactive courses





Websites with useful articles

Pragmatic Pineapple 🍍


The DEV Community


Code for geek

Codecademy Articles


Flavio Copes

Robin Wieruch