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 good enough to make this list. The really curious should feel free to browse the comments to find other links. I can't guarantee the quality of links in the comments.
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.
- Learn JavaScript Essentials (for all skill levels) One clear path to JavaScript mastery
- The Two Pillars of JavaScript Part 1: Prototypal OO
- The Two Pillars of JavaScript Part 2: Functional Programming
- JavaScript Objects An excellent explanation of inheritance in JavaScript by Kyle Simpson
- How to Use ES6 for Universal JavaScript Apps A Babel config walkthrough
- Unapply attack Make your JS apps more secure by freezing builtins.
- JavaScript Application Architecture on the Road to 2015 Addy Osmani
- Modularity A pragmatic take on the tiny modules vs batteries included approach
- The Dao of Immutability The Way of the Functional Programmer
- Reactive MVC and the Virtual DOM Great read, even if you're not a React user.
- Introduction to Reactive Programming
- The General Theory of Reactivity What is all this talk about reactive? Functional? Promises? This is the beginning of a reactive programming bible.
- ES6 Generators A series of blog posts by Kyle Simpson
- Typed JavaScript Excellent post about the state of typed JavaScript by Axel Rauschmayer
- ES6 Modules: The Final Syntax by @rauschma #AMDisDead
- javascript-sdk-design A guide for people building JavaScript client SDKs
- Advanced Performance Audits with DevTools In-depth perf case studies with Paul Irish
- Classical Inheritance is Obsolete: How to Think in Prototypal OO by Eric Elliott
- Asynchronous Programming at Netflix Jafar Husain
- What is Reactive Programming? Jafar Husain explains reactive programming
- Immutability: Putting The Dream Machine To Work by David Nolen
- Delivering the Goods Paul Irish on one of the most important but overlooked topics in the development world today - page load times.
- Simplicity Matters A later version of the influential talk, "Simple Made Easy" by Rich Hickey
- JavaScript for Kids by Nick Morgan
- Eloquent JavaScript by Marijn Haverbeke
- JavaScript: The Good Parts by Douglas Crockford
- Effective JavaScript by David Herman
- Learn JavaScript Universal App Development with Node, ES6, & React by Eric Elliott
- Programming JavaScript Applications by Eric Elliott
- JavaScript: The Definitive Guide by David Flanagan
- You Don't Know JS by Kyle Simpson
- Understanding ECMAScript 6 by Nicholas C. Zakas
- JavaScript Allongé by Reginald Braithwaite
- Node.js in Action by Mike Cantelon, Marc Harter, T.J. Holowaychuk and Nathan Rajlich
- "Seven Languages in Seven Weeks" Learn different ways of solving problems and you'll deepen your understanding of JavaScript. #book
- The Dream Machine: J.C.R. Licklider and the Revolution That Made Computing Personal by M. Mitchell Waldrop
- WebGL Fundamentals by Greggman - An interactive online book about graphics programming.
- 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.
- Atom Nice, hackable editor by GitHub.
- Node Inspector Debug Node code with the Chrome debug tools
--save-live-edit true
- TraceGL Powerful runtime analysis of live JavaScript code
- Tern Static analysis in JavaScript
- JSDoc Pair with Tern for static analysis
- 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.
- Airety Better developer interviews via pair programming.
- PrettyDiff
- Babel Repl The Babel REPL with compiled output
- Nitrous.IO Online IDE in the cloud with collaboration & Docker containers
- Koding Online cloud development platform with video & audio collaboration
- Browserify Bundle modules for the browser.
- How to use NPM as a Build Tool
- pre-commit Easily configure pre-commit hooks for your package
- JSHint
- ESLint
- babel-eslint Allow ES6 features to pass ESLint.
- eslint-plugin-no-class Forbid the ES6
class
keyword. Why? - ESLint no-inferred-methodname A custom rule for a common problem.
- Istanbul Code coverage reporting
- blue-tape Minimal, dead simple unit testing using tape. (This is all you need, really!)
- faucet Prettify unit testing output (like what comes from tape).
- Supertest The best way to test HTTP endpoints.
- Babel Transpile ES6, ES7 to ES5
- CoffeeScript
- Emscripten Frequently used for C/C++ JavaScript ports
- ES6 tools Addy Osmani's ES6 Tools list
- stats.js.org JavaScript repos ranked by popularity.
- es5-shim Stable, production ready.
- es6-shim Somewhat stable, but a few things I thought were solid got shifted to ES7.
- es7-shim Experimental. Use with caution.
- HTML5 Cross Browser Polyfills A fairly comprehensive list of HTML5 API polyfills.
- HTML5 Boilerplate You'll want to cherry-pick the best of this for your production apps. See Initializr
- prod-module-boilerplate A boilerplate for production-ready JavaScript packages
- The Universal React Boilerplate Write apps using the same code for both the client and the server using Node, Express, and Browserify.
- NodeGoat Identify security vulnerabilities in your Node apps.
- lightning.js Async fetch load 3rd party JS & expose a promise API.
- dotty Get deep properties using dot notation without throwing. e.g.,
dotty.get(req, 'user.id');
- native-promise-only An ECMAScript standard promise polyfill by Kyle Simpson.
- isomorphic-fetch A WHATWG fetch. standard polyfill.
- sseasy Server Sent Events for Node (HTML5 standard push notifications).
- EventSource browser Polyfill Required client-side patching to support Server Sent Events.
- TodoMVC A showcase implementing many MV* libraries/frameworks using a standardized demo app (for easy comparisons).
- jQuery Most popular JS lib by a landslide.
- Blaze DOM-diffing isomorphic reactive templates from Meteor.
- React What do Facebook, Instagram, Netflix and PayPal have in common? React.
- Cycle.js Like React, but more functional & reactive
- Lodash-FP Like Underscore, but much faster, and featuring a more expressive API.
- RxJS Reactive extensions for JavaScript. What's reactive?
- Page.js Tiny client-side router, inspired by Express.
- Moment A lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates.
- Globalize i18n / translate your app for many languages and locations (locales).
- Leaflet Interactive map UIs made easy.
- Lusca Secure your Express application. By the Kraken team at PayPal.
- Express The most popular framework for Node.
- Stampit Create objects from reusable, composable behaviors. Prototypal inheritance with stamps.
- Credential If you write Node apps with password logins, you need Credential.
- cuid GUIDs are broken - use cuid, instead.
- velocity & Velocity Motion Designer (VMD) UI animation library.
- is-my-json-valid A fast json-schema validator.
- inquirer.js Great library for building CLI tools.
- rimraf
rm -rf
util for nodejs. Great for npm scripts.
- Introducing React
- React blog Official React blog
- react-stampit Composable, classless React components made easy
- JSX Looks Like an Abomination but it's Good for You My take on JSX
- Baby's First Reaction Build your first working React component
- Immutable Data and React by Lee Byron
- react-engine PayPal's isomorphic React view engine for Express or Kraken
- Radium Simplify inline styles
- eslint-plugin-react
- React Hot Loader for Webpack
- livereactload for Browserify
- react-native
- react-art
- react-canvas
- react-three Three.js rendering for React
- react.rocks Pinterest-style directory of online demos with available code
- TodoMVC in React
- JSX Specification
- Data Fetching for React Relay & GraphQL Described
- Introducing Relay and GraphQL
- Building the Facebook Newsfeed with Relay
- Relay FAQ
- Getting started with GraphQL and Node.js
- GraphQL Specification
- GraphQL Reference Implementation
- graphql-server A GraphQL server implementation with Mongo / Mongoose
- Mutations in Relay (slideshow) Slideshow + speaker notes
- FIRST
- Polyfills
- HTML Imports
- Custom Elements
- Templates
- Shadow DOM
- x-gif This web component wins the internet.
- Vulcanize Don't let web components slow your app down. Bundle your HTML imports.
- PM2 Process monitoring / self repair
- 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 );
- JavaScript Questions Chat
- JavaScript on Google+
- HTML5 on Google+
- Node.js on Google+
- IRC ##JavaScript irc://irc.freenode.net/javascript
- IRC #node.js irc://irc.freenode.net/node.js
- IRC #io.js irc://irc.freenode.net/io.js The Node fork
- IRC #learnjavascript irc://irc.freenode.net/learnjavascript
- JavaScript Scene
- JavaScript Weekly
- Node Weekly
- HTML5 Weekly
- EchoJS
- JavaScript Live
- JavaScript Jabber
- Node Module Of The Week
- JavascriptKicks
- Codepen
- RequireBin
- ES6 Fiddle
- CodePicNic Embed interactive full-stack snippets & demos
- JSBin Embed editable code snippets.
- DemoJS The JavaScript demoscene party
- JS1k JavaScript demos in 1k of memory
- JS13k Games JavaScript games in 13k of memory
- FightCode game program virtual battle bots and climb the leaderboard
- Node Knockout The legendary Node competition
- JavaScript for Kids
- Screeps A strategy game you control by writing JavaScript
- CodingGame Programming puzzle games
- Fightcode Program robots to do battle
- LearnToMod Mod Minecraft with JavaScript
- The Young Person's Guide to Programming in Minecraft
- Addy Osmani App architecture expert, Chrome dev tools champion
- Angus Croll Author, "If Hemingway Wrote JavaScript"
- Axel Rauschmayer ES Next evangelist, author
- Brendan Eich Created JavaScript
- David Herman Author, "Effective JavaScript"
- David Nolen Great functional programming content
- EchoJS News and links
- Eric Elliott That's me. O'Reilly author. JavaScript architect. JS Instructor.
- Jafar Husain Great talks on RxJS, ES next, etc...
- James Halliday aka Substack - author of
one millionNode modules you probably use. - James Long CSP, functional programming advocate, Mozilla developer
- JavaScript Cheerleader Mover & shaker, JavaScript evangelist, documentary film maker
- JavaScript Daily News and links
- JavaScriptKicks News and links
- Jordan Harband Keeping us ahead of the JS curve
- Kyle Simpson Author, YDKJS - O'Reilly, JS Instructor, open web evangelist
- Marijn Haverbeke Author, "Eloquent JavaScript"
- Nicholas C. Zakas Author, speaker
- Nick Morgan Author, "JavaScript for Kids"
- Paul Irish Developer evangelist, Chrome dev tools champion
- Reginald Braithwaite Author, "JavaScript Allongé", speaker, PagerDuty
- YDKJS You Don't Know JS, O'Reilly book series by Kyle Simpson
- Nicolas Bevacqua Author "JavaScript Application Design", Speaker, Open-Source Evangelist