Cutting Edge Javascript

This is a page to keep track of some useful Javascript stuff. It will be updated and curated periodically, it is not guaranteed to be always up to date, nor comprehensive.

Community

Name Note
js.org Free resource for JS community
stats.js.org js library trends
news.js.org js news
dns.js.org free js.org subdomain for your projects
wasm.news Web Assembly News

FRP(Functional Reactive Programming)

Name Note
RxJS, RxJS 5.x and above An API for asynchronous programming with observable streams, in Javascript
Immutable.js Immutable collections for JavaScript, by Facebook
Bacon.js A small functional reactive programming lib for JavaScript

Libraries

Name Note
jQuery Legendary js library
Zepto A minimalist JavaScript library for modern browsers with a largely jQuery-compatible API
Moment.js A great library to Parse, validate, manipulate, and display dates in JavaScript, works with both browser and nodejs!
passport.js Simple, unobtrusive authentication for Node.js, supports almost many different kinds of authentication methods and platforms, a must-have lib for many js projects

Related languages

Name Note
TypeScript A super set of javascript, with static check and more, developed by Microsoft, popular recently
CoffeeScript a little language that compiles to javascript.
Dart A language that compiles to javascript, but it is not javascript, developed and used by Google.
Elm I don't know much about this yet
ClojureScript Another new one?

Testing

Test Runner

Name Note
Karma A popular js test runner(for unit tests), run your tests inside several different Browsers(based on iframes), and generate reports
Protractor An e2e(end-to-end) js test runner, using WebDriver APIs to interact with Browsers
webdriveio A Selenium 2.0 bindings for NodeJS
https://wallabyjs.com/ Commercial, requires license, a unit test runner, has great integration with code editors, runs your tests in realtime and show the results in your code editor

Test Services

Name Note
Selenium
CodeClimate
Appium
SauceLab
BrowserStack
TestingBot

Test Frameworks

Name Note
Jasmine BDD style testing framework, support works with Nodejs and Browser, battery included, built-in Spy Mock etc
Mocha Another popular testing framework, works with Nodejs and Browser, with great Promise support, needs external assertion libraries like Chai.js
ava Another test runner, with concurrent support
Jest A battery-included test framework/runner, with many features like Mocking or Coverage built in, native support for React projects, built by Facebook

Mock && Stub

Name Note
supertest Fluent test apis for node HTTP test
nock HTTP mocking and expectations library
sinon Js test spy, stub, mocks

Assert Library

Name Note
[assert][]
should.js
Chai.js
expect.js
[better-assert][]
[unexpected.js][]
power-assert

Code Coverage

Name Note
istanbul Code coverage tool, supports html and cov output
Coveralls Online code coverage service

Tools

Online JS & HTML & CSS Playground

Name Note
http://codepen.io/ Heavily used by css-tricks.com, 👍
https://runkit.com Online Node.js playground, 👍
https://jsfiddle.net/ Maybe the oldest one?
http://plnkr.co/ Angular Team use it.
https://jsbin.com/ Another online playground.

AST(Abstract Syntax Tree) Parser

Name Note
AST Explorer an online AST parsing and exploration service, using a wide range of AST parsers for JS, Html, CSS etc
Esprima an js parser written in js

Javascript with Types

Name Note
TypeScript A Typed Super Set of Javascript, by Microsoft
Flow A Static Type Checker for Javascript, by Facebook
rtype Intuitive structural type notation for JavaScript
jsig JavaScript signature notation

Compilers & Transpilers

Babel | A Javascript compiler that enables you to use next generation javascript today. Traceur | Another js.future to js.today compiler like Babel, by Google.

Linter & Hinter & Auto-Completion

Name Note
JSHint a js lint tool, read the document of jshint will also let you know more about js quirks
ESLint
XO Beautiful js style linter, uses ESLint
JSLint js code quality tool by Douglas Crockford
Ternjs a stand-alone js code analysis engine, usually used for code autocompletion
standardjs JavaScript Standard Style

NPM Related Tools & Services

Name Note
https://npms.io A better package search engine for NPM
https://david-dm.org NPM package dependency status monitor
https://nodesecurity.io/ Continuous Node Security Platform
https://greenkeeper.io/ Get safety & consistency with real-time monitoring and automatic updates for npm dependencies

Modules

Name Note
AMD
CommonJS
ES6
UMD
Isomorphic

Package manager

Name Note
NPM the de-facto NodeJS Javascript package manager
Yarn another package manager by Facebook, compatible with NPM and Bower packages
Bower it is almost dead, not used nowadays

Module Bundler

Name Note
Webpack1
Webpack2
RequireJS
SystemJS
Browserify Use NPM packages in browsers
Rollup Next-generation ES6 module bundler
jspm Frictionless browser package management

Task runner

Name Note
Gulp
Grunt
Broccoli
Make
NPM

Code Compression, Uglify, Obscuration

Name Note
YUI Compressor classic js compressor, written in java.
Uglify JavaScript parser / mangler / compressor / beautifier library for NodeJS
Uglify2 JavaScript parser / mangler / compressor / beautifier toolkit
Closure Compiler parse analyze and optimize your js, download and run faster, by Google.

Documentation

Name Note
JsDoc
EsDoc
Dgeni Flexible JavaScript documentation generator used by AngularJS, Protractor and other JS projects

Editors

Name Note
Atom A hackable text editor by Github, based on Github's electron platfrom.
Visual Studio Code another hackable text editor, powered by Microsoft, also built upon electron platform. My personal choice for typescript code.
Nuclide A text editor build on top of Atom, optimized for javascript development.
alm A cloud ready IDE for TypeScript
WebStrom Smart javascript IDE built by JetBrains.

WebComponents Solutions

Name Note
Polymer A framework uses Web Components, Shadown Dom, HTML Import etc, still by Google, though it is not as popular as Angular React or Vue.js etc, but the design and concepts are really cool!
skate.js A functional, featherweight and cross-framework compatible web component library built on W3C specs.
svelte "The magical disappearing UI framework" -- Svelte Website
stencil The magical, reusable web component generator, built by Ionic.

Frontend Frameworks

Name For
Angular1 A popular and old js app framework, by Google
Angular2 The new Angularjs framework, with many improvements over its predecessor, by Google
React Facebook's js app framework.
React Native
Aurelia
Vue.js Lightweight, component based, not really a framework like Angular2
Meteor.js
NativeScript
Ionic Framework

Angular2 Resources

Name For
Angular CLI Official Command Line Utility for Angular2
Code Snippets for vim snippets, vscode, atom, sublime text
codelyzer A set of tslint rules for Angular TypeScript projects
Angular2 Material Official material UI components for Angular2, also great examples for Angular2 code
ui-router Full featured front end router component, supports Angular1, Angular2, React Apps

Node.js

Data Fetching

RESTful API | Popular and easy to use data fetching mechanism GraphQL | A query language for your API, by Facebook Falcor | A JavaScript library for efficient data fetching, by Netflix

Web Frameworks

Name For
express Fast, unopinionated, minimalist web framework for Node.js
koa next generation web framework for Node.js

Useful NPM packages

Name For
[ms]https://www.npmjs.com/package/ms() working with milliseconds made easy
uuid Generate uuid with node.js
bcrypt generate secure hash for your passwords
mongoose Node.js MongoDB bridge
chalk Add color to your terminal output!
request HTTP Request Client
axios HTTP Request Client with Promise support
superagent HTTP Request Library
passport.js Oauth and user login library
nodemailer Node.js email sending library
commander.js Node.js command line framework
lodash An powerful js utility library
marked Working with markdown
cheerio jQuery-like html utilities for Node.js

Great JS & Node.js Books

Name Note
Javascript: The Good Parts by Douglas Crockford A must read JS book
You Don't Know JS free online JS book, by Kyle Simpson
Node Patterns great articles about Node.js
https://blog.yld.io great resources about Nodejs
https://nodesource.com/blog official blog of Node.js

Tags: