JavaScript Resources
Hack Reactor June 2014 Cohorts
Other Resource Lists and Sites
Much better than this one
- Free Programming Books
- Front-end Feeds
- Front-end Developer Interview Questions
- Front-end Dev Bookmarks
- READ UP
Blogs & News
JavaScript Rockstars
Follow them on GitHub and elsewhere
Git & GitHub
Master it
- Hub — GitHub from the command line.
- GitHub Pages — Guide to hosting sites on GitHub pages.
- GitHub Cheat Sheet — GitHub has an awful lot of features. Explore them.
- GitHub API Documentation — The GitHub REST API.
- GitHub Flavored Markdown — How GitHub interprets markdown.
- Explore GitHub — Browse interesting projects, solving all types of interesting problems.
- Emoji Cheat Sheet — Because
😑 is how you should respond to bad pull requests. - philschatz/octokit.js — An Unofficial client for the Github API using CommonJS Promises. Intended for the browser or as a NodeJS package.
- nodegit/nodegit — Native Node bindings to Git.
- atom/git-utils — Git Node Module.
The Language
Nuts & bolts
Style
USE MORE SPACES, PEOPLE.
- rwaldon/idiomatic.js — Principles of Writing Consistent, Idiomatic JavaScript.
- airbnb/javascript — JavaScript Style Guide.
Testing
Be taken seriously
- QUnit — An easy-to-use JavaScript Unit Testing framework. GitHub
- Chai — BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework. GitHub
- Mocha — mocha - simple, flexible, fun javascript test framework for node.js & the browser. (BDD, TDD, QUnit styles via interfaces) GitHub
- Jasmine — DOM-less simple JavaScript testing framework. GitHub
- Karma — Spectacular Test Runner for JavaScript. GitHub
- Sinon.js — Test spies, stubs and mocks for JavaScript. GitHub
Continuous Integration
Travis CI — De-facto standard for open-source projects; Easy GitHub-integration Testling — Run your browser tests on every push!
Building and Tooling
Be a better developer
- Browserify — browser-side require() the node.js way. GitHub Handbook
- Grunt — the JavaScript Task Runner. GitHub
- Gulp — the streaming build system. GitHub
- Brunch — Ultra-fast HTML5 build tool GitHub
- Broccoli — Browser compilation library – a build tool for applications that run in the browser
- Google Closure Compiler — A JavaScript checker and optimizer. GitHub
Data Structures & Algorithms
Examples in JavaScript
- mgchev/javascript-algorithms — JavaScript implementation of different computer science algorithms.
- chenglou/data-structures — Fast, light and hassle-free JavaScript data structures, written in CoffeeScript.
- davidshariff/computer-science — Contains the basic fundamental data structures and algorithms a front end engineer should know, written all in JavaScript.
- afiore/arboreal — Javascript tree-traversal and manipulation microlibrary
- mauriciosantos/buckets — A complete, fully tested and documented data structure library written in JavaScript.
Building & Using APIs
CoffeeScript
- The Little Book On CoffeeScript
- The CoffeeScript Cookbook
- mkautzmann/Idiomatic-CoffeeScript — A set of best practices in CoffeeScript programming, built for better code readability and consistency.
JavaScript Everywhere
Tools for running JavaScript code and apps outside the browser.
- MacGapProject/MacGap1 — Desktop WebKit wrapper for HTML/CSS/JS applications.
- rogerwang/node-webkit — Call all Node.js modules directly from DOM and enable a new way of writing applications with all Web technologies.
- Anonyfox/node-webkit-hipster-seed — Bootstrap a crossplatform Desktop Application using tools you probably never heard of. No this isn't a developer joke. It works.
- PhoneGap — access core functions on Android, iPhone and Blackberry using JavaScript. GitHub
- Tessel — Hardware development for software developers. GitHub
Linting
New Hotness
Stuff related to upcoming ES6 features, exotic DOM APIs, or anything else that's not old and busted.
- Google Traceur Compiler
- ES6 Draft Spec
- Intro to
Object.observe
- ES6 Generators
- Introduction to Web Components
DOM & Browser
- What Every Frontend Developer Should Know About Webpage Rendering
- Minimizing Browser Reflow
- Faster DOM Manipulation
User Interface Design & Development
HFS
Holy f***ing s***, how did they do that?
Libraries
Event Systems
- events.EventEmitter — the native Node events module
- cowboy/jquery-tiny-pubsub — a really, really, REALLY tiny pub/sub implementation for jQuery.
- asyncly/EventEmitter2 — a nodejs event emitter implementation with namespaces, wildcards, TTL, works in the browser
- Wolfy87/EventEmitter — Evented JavaScript for the browser
- fat/bean — an events api for javascript
Promises
- petkaantonov/bluebird — a full featured promise library with unmatched performance.
- cujojs/when — a solid, fast Promises/A+ and when() implementation, plus other async goodies.
- Promises/A+ Spec — an open standard for sound, interoperable JavaScript promises—by implementers, for implementers.
- jQuery.Deferred docs — like promises but not really.
Classes, Inheritance, Object Construction
- util.inherits() — the native Node helper.
- Wolfy87/Heir — Makes prototypical inheritance easy and robust.
- dilvie/stampit — Create objects from reusable, composable behaviors.
- javascript/augment — The world's smallest and fastest classical JavaScript inheritance pattern.
- Essential JavaScript Design Patterns — The authoritative guide to building objects in JavaScript.
- A Fresh Look At JavaScript Mixins
Templating
- Jade — robust, elegant, feature rich template engine for nodejs. GitHub
- Mustache — minimal templating with {{mustaches}} in JavaScript. GitHub
- Handlebars — an extension to the Mustache templating language. GitHub
- Toffee — a NodeJS and browser templating language based on coffeescript, with the slickest syntax ever. GitHub
- CoffeeKup — markup as CoffeeScript. GitHub
User Interfaces
- React — a JavaScript library for building user interfaces. It's declarative, efficient, and extremely flexible. What's more, it works with the libraries and frameworks that you already know. GitHub
- Hamlet — the most tempting language for client side JavaScript applications. GitHub
- Space Pen — A simple and powerful client-side view framework that works in zero-gravity.
Routing
- visionmedia/page.js — Micro client-side router inspired by the Express router (~1200 bytes)
- flatiron/director — a tiny and isomorphic URL router for JavaScript
- A JavaScript Router in 20 Lines
AJAX
- jQuery.ajax documentation
- visionmedia/superagent — Ajax with less suck - (and node.js HTTP client to match)
Utility Snippets
- kaimallea/isMobile — a simple JS library that detects mobile devices.
- Environment-agnostic boilerplate — shamelessly stolen from the Backbone source. Write code that works seamlessly in Node, AMD, and the browser.
Generating Docs
- JSDoc — an API documentation generator for JavaScript. GitHub
- Docco — Literate Programming can be Quick and Dirty. GitHub
Functional Programming
- Introduction to Functional Javascript
- Eloquent JavaScript - Chapter 6: Functional Programming
- raganwald/allong.es — a collection of functions designed to facilitate writing JavaScript and/or CoffeeScript with functions as first-class values.
- CrossEye/ramda — a practical functional library for Javascript programmers.
- fitzgen/wu.js — a lazy, functional Javascript library that ain't nuthin' ta f*ck wit.
- dtao/lazy.js — like Underscore, but lazier.
- Reactive Extensions Tutorial
- Reactive-Extensions/RxJS — the Reactive Extensions for JavaScript
- Functional Reactive Programming Intro An extremely thorough introduction to functional reactive programming
- baconjs/bacon.js — FRP (functional reactive programming) library for Javascript
Front-End Frameworks
- Backbone — Give your JS App some Backbone with Models, Views, Collections, and Events. GitHub
- Ember.js — a JavaScript framework for creating ambitious web applications. GitHub
- Angular.js — HTML enhanced for web apps. GitHub
- Meteor — Meteor is an ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework. GitHub
- TodoMVC — compare front-end frameworks.
Back-End Frameworks
- Express — Sinatra inspired web development framework for node.js -- insanely fast, flexible, and simple. GitHub
- Sails.js — Realtime MVC Framework for Node.js. GitHub
- Koa.js — next generation framework for node.js GitHub
- Hapi — A rich framework for building applications and services GitHub
Database Interaction / ORMs
Database clients in JavaScript