/essential-javascript-links

Essential JavaScript website.

Primary LanguageApacheConfMIT LicenseMIT

Essential JavaScript Links

A curated list by Eric Elliott and friends. Suggest a link with a PR or open a new issue.

Help us turn this into a proper website!

This is a very exclusive collection of only must-have JavaScript links. I'm only listing my favorite links. Nothing else makes the cut. Feel free to suggest links if you think they're truly essential.

Full Disclosure

Some of these links are affiliate links, meaning that if you make a purchase, I might earn a little money. This has absolutely no bearing on whether or not links make the list. None, whatsoever. However, it does allow me more resources to fight poverty with code. Every little bit counts.

Required Reading (Online resources)

Required Viewing

Exercises

Spec

Books

Dev tools & collaboration

  • nvm First install this...
  • Node Then install Node (with nvm). You'll need this even if you're a front-end dev.
  • npm Install lots of other things with npm. The package manager for JavaScript. Comes with Node.
  • Yarn "Fast, Reliable, and Secure Dependency Management". May speed up your installs and make them more deterministic than using npm. Uses the npm registry.
  • Atom Nice, hackable editor by GitHub.
  • Tern Static analysis in JavaScript
  • Slate Generate beautiful API docs for your apps
  • Slack Chat for teams, with GitHub and Google hangouts integration
  • Gitter Like Slack, but better for OSS projects and free chat.
  • Zoom Video meetings with remote control - great for interviews and remote pair programming.
  • PrettyDiff
  • Babel Repl The Babel REPL with compiled output
  • ESNextBin A babel powered ES6+ browser bin with npm package support.
  • Cloud9 Your dev environment and IDE in the cloud.
  • Koding Online cloud development platform with video & audio collaboration.
  • updtr Keep your modules up to date.
  • Greenkeeper Automatically opens PRs when your dependencies fall behind latest.
  • greenkeeper-keeper Automatically merges Greenkeeper PRs when tests pass.

Building

Testing / Lint / Quality checkers

  • ESLint The pluggable linting utility for JavaScript and JSX.
  • ESLint no-inferred-methodname A custom rule for a common problem. #code
  • Istanbul Code coverage reporting
  • nyc a code coverage tool built on istanbul that works for applications that spawn subprocesses.
  • tape Dead simple unit testing #code
  • tap-browser-color Prettify tap output in the browser. Works well with Tape. #code
  • faucet Prettify tap output in the console. Plays well with Tape. #code
  • Supertest The best way to test HTTP endpoints. #code

Transpilers

JavaScript environments

  • Node.js Server side JavaScript and more.

Libraries

  • stats.js.org JavaScript repos ranked by popularity. #code
  • Express The most popular framework for Node. #code
  • Next.js Painless universal JavaScript framework built on React + Node. #code
  • Lodash Like Underscore, but much faster, and featuring a more expressive API. Check out the Ramda-style fp versions you can import from lodash/fp #code
  • cuid GUIDs are broken - use cuid, instead. #code
  • React What do Facebook, Instagram, Netflix and PayPal have in common? React. #code
  • RxJS Reactive extensions for JavaScript. What's reactive? #code
  • Moment A lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates. #code
  • https://qa.polyfill.io/v2/docs/ Pollyfill browsers automatically. #code
  • UpUp Make sure your site works even when your user is offline. #code
  • Immutable.js A library for creating immutable collections. #code
  • NodeGoat Identify security vulnerabilities in your Node apps. #code
  • lightning.js Async fetch load 3rd party JS & expose a promise API. #code
  • Deep Freeze Deep freeze objects. #code
  • jQuery Most popular JS lib by a landslide. #code
  • Ramda Like Lodash and Underscore, but with all functions automatically curried, and parameters arranged so that the data to be operated on is supplied last. #code
  • express-request-language Best implementation I've seen for Accept-Language negatiation in Express. #code
  • accept-language If you don't use express, accept-language is the low-level lib that powers express-request-language for language matching & fallback. #code
  • Globalize i18n / translate your app for many languages and locations (locales). #code
  • dotenv Easily manage environment variables #code
  • Leaflet Interactive map UIs made easy. #code
  • Lusca Secure your Express application. By the Kraken team at PayPal.
  • Stampit Create objects from reusable, composable behaviors. Prototypal inheritance with stamps. #code
  • Countly Open source mobile & web analytics and marketing platform. #code
  • node-jsonwebtoken Easy JSON Web Token auth. #code
  • velocity & Velocity Motion Designer (VMD) UI animation library. #code
  • is-my-json-valid A fast json-schema validator. #code
  • is-express-schema-valid is-my-json-valid as Express middleware for req.body req.query and req.params. #code
  • inquirer.js Great library for building CLI tools. #code
  • rimraf rm -rf util for nodejs. Great for npm scripts. #code
  • cross-env Use environment variables with npm scripts cross-platform. #code
  • Wemo.io Open Source VR Tools #code
  • IoT.js An Internet of Things JavaScript platform.

React

GraphQL

Progressive Web Apps (PWAs)

Web Components & Component Based Architecture

Benchmarking

  • JSlitmus - JSLitmus is a lightweight tool for creating ad-hoc JavaScript benchmark tests.
  • Matcha - Matcha allow you to design experiments that will measure the performance of your code. It is recommended that each bench focus on a specific point of impact in your application.
  • Timing.js - Timing.js is a small set of helpers for working with the Navigation Timing API to identify where your application is spending its time. Useful as a standalone script, DevTools Snippet or bookmarklet.
  • Stats.js - This class provides a simple info box that will help you monitor your code performance.

QA / Deployment / Monitoring / CI

  • PM2 Process monitoring / self repair
  • Pingdom Response monitoring and alert management (because incidents happen).
  • New Relic Deep insights into the performance and health of your production apps
  • Sauce Labs Cross platform web application testing with great collaboration and integration support
  • Travis CI CI, of course
  • Docker Run your CI process using the same OS configs as your production systems.
  • Shippable Docker-based hosted build / CI
  • Tensō A thin API facade in Node
  • Kong API/microservice extension and management layer, centralize auth, cache, logging, rate limiting, etc... plugins in Lua );

Community

News

Pasting / sharing code

Contests

Hackable Hardware

Hosting

For kids (and adults who just love to have fun)

Essential Twitter (alphabetical order)