50+ JavaScript & HTML5 Frameworks and Related Tools

Posted on Mar 08, 2012

This is the first draft of a document I am using and handing out along with my upcoming presentations at 360Flex and cf.Objective(). It is a list of every JavaScript (and, to a lesser degree HTML5) framework I have come across over the past 6 months. I have organized them according to categories, given the URL, license details, source availability and a brief summary.

My goal in posting this now, other than hopefully people find it useful, is to ask for feedback from the community. What frameworks am I missing? Are there any mistakes? Would you choose different categories? What additional information would be useful?

Some ideas I have for this is to put it on GitHub so that anyone can submit an edit. Perhaps even convert it to some data format like JSON that can be used to create many means of searching or building off of it. Any thoughts on those ideas? For now please contribute via the comments.

Update Mar 12: Added Pure, CoreChain, Dojo Mobile, ClojureScript, GWT, DHTMLX, DHTMLX Touch, Qooxdoo

Full-stack Frameworks/Toolkits

jQuery
License: MIT and GPL licenses
GitHub: Yes
Summary: A framework that simplifies DOM traversing, event handling, animating and Ajax interactions for rapid web development. jQueryUI library includes UI components.

Dojo Toolkit
License: BSD license or the Academic Free License version 2.1
GitHub: No (source hosted on SVN)
Summary: A full stack framework and component set for building web-based and mobile applications that includes DOM manipulation, Ajax, animations, effects, and widgets.

ExtJS
License: GNU GPL license v3 and paid Commercial licenses available
GitHub: No
Summary: A full stack framework and extensive UI component set for building web-based rich internet applications.

Twitter Bootstrap
License: Apache v2
Github: Yes
Summary: A  toolkit for kickstarting HTML, CSS and JavaScript for websites and apps including base styles for typography, forms, buttons, tables, grids, navigation, alerts, and more..

YUI
License: BSD
GitHub: Yes
Summary: A lightweight and modular JavaScript and CSS framework for building interactive web applications.

MooTools
License: MIT
GitHub: Yes
Summary: A modular, object-oriented framework that re-creates pseudo-classical inheritance with Classes that allow for extensible and reusable behaviors.

Kendo
License: GPLv3 and paid Commercial licenses available
GitHub: No
Dependencies: jQuery
Summary: A full stack framework for building JavaScript-based web and mobile applicatings including support for templates, themes and UI widgets.

Prototype
License: MIT
GitHub: Yes
Summary: A framework including a toolkit for class-driven development and an Ajax library.

SproutCore
License: MIT
Github: Yes
Summary: An MVC application framework for data-centric applications that includes data bindings.

Ember.js
License: MIT
GitHub: Yes
Summary: Framework that tries to eliminate boilerplate and provide a standard architecture. Includes bindings, computed properties and auto-updating templates. Formerly SproutCore 2.0.

Blossom
License: GPL v3
Github: Yes
Summary: Another SproutCore fork, it re-architects the view layer to be HTML/CSS-independent while providing a high-performance animation subsystem that leverages hardware acceleration.

Google Closure
License: Apache v2
Github: No (Source available on Google Code)
Summary: Developed by Google engineers, it includes features like a JavaScript optimizer, a library of UI widgets and controls, a templating engine and extensions to CSS.

Cappuccino
License: LGPL
Github: Yes
Summary: Created with Objective-J, which is modelled after Objective-C but on JavaScript, it abstracts away HTML, CSS and the DOM and implements APIs from GNUstep and Cocoa.

Tower.js
License: MIT
Github: Yes
Summary: A full stack web framework for Node.js and the Browser built on top of Node's Connect and Express and modeled after Ruby on Rails.

 

DHTMLX
License: Standard Edition is GNU GPL v2, Commercial & Enterprise versions available.
Github: No
Summary: Includes collections of user interface components, allowing you to create robust web interfaces, manage client-server communications with Ajax, and implement server-side logic.

 

CoreChain
License: MIT and GPL
Github: No
Summary: An architectural framework and UI toolkit. (Documentation in Korean)

 

qooxdoo
License:  GNU LGPL and the Eclipse Public License (EPL)
Github: Yes
Summary: A JavaScript framework for creating apps for a wide range of platforms (mobile, website, desktop, server) that are object-oriented and utilize a comprehensive tool chain.

 

Architectural Frameworks

Knockout.js
License: MIT
GitHub: Yes
Summary: A lightweight framework for building JavaScript UI’s with declarative bindings using the Model-View-View Model (MVVM) pattern.

Backbone.js
License: MIT
GitHub: Yes
Summary: An architectural framework provides things like models key-value binding and custom events, views with declarative event handling and a RESTful JSON interface.

AngularJS
License: MIT
GitHub: Yes
Summary: An MVC and dependency injection framework that includes support for declarative UI templates and two-way binding.

Spine
License: MIT
GitHub: Yes
Summary: A lightweight MVC framework built with, but not requiring, CoffeeScript that includes features like asynchronous server communication, a full model layer and ORM.

Agility.js
License: MIT
GitHub: Yes
Summary: An MVC library that works with a single object type that contains a full model-view-controller stack.

Sammy.js
License: MIT
MIT: Yes
Summary: A very lightweight framework for applications made up primarily of routes and events that is designed to be modular, with adapters and plugins.

JavaScriptMVC
License: MIT
Github: Yes
Dependencies: jQuery
Summary: Comprised of 4 sub projects including the DocumentJS documentation engine, FuncUnit testing framework, jQueryMX MVC extensions and StealJS code manager.

Batman.js
License: MIT
Github: Yes
Summary: A framework for building applications with CoffeeScript or JavaScript including a system of view bindings and observable properties

Soma.js
License : Mozilla Public License (MPL) Version 1.1
Github: Yes
Summary: MVC framework focused on loosely-coupled apps that implements the Observer and Command patterns via the native JavaScript event system. Includes a MooTools version.

Supplementary Libaries

AmplifyJS
License: MIT or GPLv2
GitHub: Yes
Dependencies: jQuery
Summary: A set of components to simplify data handling and AJAX request management by providing a unified API for various data sources.

Underscore
License: MIT
GitHub: Yes
Summary: A library that provides functions and helpers for functional programming support including function binding, JavaScript templates and more.

Mustache.js
License: MIT
GitHub: Yes
Summary: An implementation of the Mustache logic-less template system in JavaScript.

Handlebars.js
License: MIT
Github: Yes
Summary: A library that works in conjunction with Mustache.js to let you build semantic templates.

RequireJS
License: BSD and MIT
GitHub: Yes
Summary: A JavaScript file and module loader optimized for the browser but works with server-side solutions like Node and Rhino.

Microjs
License: depends on micro-framework or micro-library
GitHub: Yes
Summary: A large collection of micro-frameworks each with a very limited and specific intent.

UKI
License: MIT
Github: Yes
Summary: A simple JavaScript user interface toolkit for desktop-like web applications that comes with a rich view-component library.

Pure
License: MIT
Github: Yes
Summary: A templating tool to generate HTML from JSON data that can work standalone or with dojo, DomAssistant, jQuery, Mootools, Prototype, Sizzle and Sly.

Graphics/Animation

EaselJS
License: MIT
GitHub: Yes
Summary: A library to simplify working with the html5 canvas element including a full, hierarchical display list and a core interaction model.

Paper.js
License: MIT
GitHub: Yes
Summary: An open source vector graphics scripting framework that runs on top of the HTML5 Canvas.

Raphael
License: MIT
Github: Yes
Summary: A small JavaScript library to simplify working with vector graphics via SVG and VML.

Mobile Specific

jQuery Mobile
License: MIT and GPLv2
GitHub: Yes
Dependencies: jQuery
Summary: A HTML5-base UI system for all popular mobile device platforms, built on a jQuery and jQuery UI foundation.

Sencha Touch
License: GNU GPL license v3 and free Commercial licenses available
GitHub: No
Summary: A mobile web app development framework built with HTML5, CSS3, and Javascript and including components like audio and video, a localStorage proxy and styling layer.

Zepto
License: MIT
GitHub: Yes
Summary: Primarily focused on mobile, this is  a minimalist JavaScript framework with a jQuery-compatible syntax.

The M Project
License: MIT & GPL
Github: Yes
Dependencies: jQuery, jQuery Mobile
Summary: An MVC framework for mobile app development including features like offline support, local storage, positioning, a touch-optimized UI, i18n support and native packing via Espresso.

jQ.Mobi
License: MIT
Github: Yes
Summary: The jQuery framework rewritten from the ground up to be optimized for mobile browsers on iOS and Android.

Spine Mobile
License: MIT
Github: Yes
Dependencies: Spine
Summary: Built on top of Spine that, it strives for a native look-and-feel and includes features like specialized controllers and panel layout, hardware accelerated transitions and touch events.

gbone.js
License: MIT
Github: Yes
Dependencies: Backbone.js, Underscore.js, Zepto or jQuery
Summary: Inspired by Spine Mobile but written for Backbone and adding design patterns like observer and cleanup mixins based on Backbone.js on Rails ebook.

jQTouch
License: MIT
Github: Yes
Summary: A plugin for Zepto or jQuery designed for mobile web development on the iPhone,
Android and iPod Touch.

Enyo
License: Apache v2
Github: Yes
Summary: An object-oriented JavaScript framework built for mobile first, though it supports desktop browsers, and powering WebOS.

ChocolateChip UI (ChUI)
License: MIT
Github: Yes
Summary: A framework for mobile web application on the WebKit platform that provides layouts and widgets with built-in functionality. Has been ported to jQuery and Zepto.

xui.js
License: MIT
Github: Yes
Summary: An extremely small DOM library for authoring html5 mobile web applications. Originally written for PhoneGap by members of the PhoneGap team.

Jo
License: MIT
Github: Yes
Summary: A framework for mobile HTML5 web or native apps that includes widgets, lists and scrolling goodness using JavaScript and CSS3. Works well with PhoneGap.

Dojo Mobile
License: BSD license or the Academic Free License version 2.1
GitHub: No (source hosted on SVN)
Summary: An HTML5 and JavaScript framework that focuses on a native look and feel on modern webkit-enabled mobile devices such as iPhone, iPod Touch, iPad, Android and RIM.

 

DHTMLX Touch
License: GNU GPL and free commercial Licenses
Github: No
Summary: A full framework and UI widgets for building HTML5-based mobile web apps.

 

Server-side JS

Node.js
License: MIT (included libraries vary)
GitHub: Yes
Summary:  Platform built on Chrome's JavaScript runtime for building network applications using an event-driven, non-blocking I/O model for data-intensive real-time applications.

Rhino
License: MPL 1.1/GPL 2.0 license
Github: Yes
Summary:  An implementation of JavaScript written entirely in Java typically for embedding into Java applications to provide scripting to end users.

Testing

Mocha
License: MIT
Github: Yes
Summary: A JavaScript test framework running on node and the browser for asynchronous testing.

QUnit
License: MIT
Github: Yes
Summary: QUnit is a JavaScript test suite used by the jQuery project to test its code and plugins but capable of testing any generic JavaScript code.

Shim
License: unknown
Github: Yes
Dependencies: Node.js
Summary: A cross-browser and cross-device compatibility testing framework.

JSDev
License: Not listed
Github: Yes
Summary: A filter that is useful for testing as it activates selected comments, making them executable.

PhantomJS
License: MIT
Github: Yes
Summary: Designed for headless website testing, Shim is a headless WebKit with JavaScript API including native support for DOM handling, CSS selector, JSON, Canvas, and SVG.

wru
License: MIT
Github: Yes
Summary: A general purpose test framework compatible with web environment, node.js, Rhino, and now PhantomJS.

SinonJS
License: Simplified BSD
Github: Yes
Summary: Standalone test spies, stubs and mocks for JavaScript with no dependencies and works with any unit testing framework.

Jasmine
License: MIT
Github: Yes
Summary: A behavior-driven development framework for testing JavaScript code that does not depend on any other JavaScript frameworks.

Gaming

Impact
License: Paid commercial license
GitHub: No
Summary: Impact is a JavaScript Game Engine that allows you to develop stunning HTML5 Games for desktop and mobile browsers.

ThreeJS
License: MIT
GitHub: Yes
Summary:  A lightweight 3D library designed for a very low level of complexity and providing canvas, svg and WebGL renderers.

CreateJS
License: MIT
Github: Yes
Summary: A whole suite of libraries, including EaselJs, TweenJS, SoundJS, PreloadJS and Zoe, designed for creating games and animations.

Languages That Compile to JavaScript

CoffeeScript
License: MIT
GitHub: Yes
Dependencies: Node.js
Summary: Billed as an attempt to expose the good parts of JavaScript in a simple way.

Google Dart
License: BSD
Github: No (Source available on Google Code)
Summary: Intended to solve JavaScript's problems and offer better performance, including  the ability "to be more easily tooled for large-scale projects" and better security features.

Brunch
License: MIT
GitHub: Yes
Dependencies: CoffeeScript, Backbone.js, Underscore.js, Stitch, Eco, Stylus & jQuery.
Summary: Billed as "a lightweight approach to building HTML5 applications with emphasis on elegance and simplicity."

ClojureScript
License: Eclipse Public License 1.0
Github: Yes
Summary: A compiler for Clojure that targets JavaScript and is designed to emit JavaScript code which is compatible with the advanced compilation mode of the Google Closure compiler.

Google Web Toolkit (GWT)
License: Creative Commons Attribution 3.0 License
Github: No
Summary: The GWT SDK contains the Java API libraries, compiler, and development server that let you write client-side applications in Java and deploy them as JavaScript.

Comments

Sam Farmer Here's another one in the template area:

http://beebole.com/pure/

Posted By Sam Farmer / Posted on 03/08/2012 at 7:12 AM


YoungBo Kim Would you have additional CoreChain. CoreChain is Javascript framework. CoreChain support core, UI and Canvas. Currently we have completed the development of SVG framework. Writing a user guide will be announced within 3 months. The scale of framework is about 28,000 lines. please look at the development history on the download page of the site.
I live in Seoul, Korea.

Posted By YoungBo Kim / Posted on 03/08/2012 at 7:55 AM


Riley You should add DeftJS to the list of frameworks and libs. It's an IoC container for Sencha Ext JS and Touch: http://deftjs.org/

Posted By Riley / Posted on 03/08/2012 at 8:51 AM


Dan Vega Great List Brian and I am glad you are going to be at cfObjective this year!

Posted By Dan Vega / Posted on 03/08/2012 at 1:21 PM


laverchere Didn't see Dojo mobile in your list

Posted By laverchere / Posted on 03/08/2012 at 3:24 PM


Dan Fredericks Brian and anyone else,
it would be great if you or someone could write up a great blog post, or google+ post that really describes why there are tons of js frameworks, why should I use one, benefits, ect. I see people talking about Nodejs, backbone, emberjs angularjs, ect, but I don't see why there is a huge push for them. I just jquery, and some jquery ui...want to check out phone gap and jquery mobile, but why all these js frameworks, and how can they help out a codfusion/jquery programmer?

thanks Brian and/or anyone else
Dan

Posted By Dan Fredericks / Posted on 03/09/2012 at 5:07 AM


Brian I think your definition of "full stack framework" is a bit loose. jQuery (DOM library), Twitter Bootstrap (UI library)? A full stack means DOM + UI Widgets + Data + Events + App Architecture. A list like this should help people compare apples to apples, as much as possible of course.

It might also be worth pointing out, for example, that Sproutcore is a dead end.

That said, putting the list "on paper" is a good start!

Posted By Brian / Posted on 03/09/2012 at 9:01 AM


heff Video.js - HTML5 Video Framework (http://videojs.com)

Posted By heff / Posted on 03/09/2012 at 10:18 AM


Chris Thanks for the list.

Many of these were added recently to the WTFramework bookmarklet, which detects the JS frameworks/libraries used on a page:

http://oskarkrawczyk.github.com/wtframework/

Cheers!

Posted By Chris / Posted on 03/09/2012 at 12:11 PM


Rick Waldron Popcorn.js, for programming interactive HTML5 video; just released 1.2

Posted By Rick Waldron / Posted on 03/09/2012 at 7:39 PM


Richard Marsh HighCharts?

Posted By Richard Marsh / Posted on 03/10/2012 at 2:32 AM


Don Mullen Under 'Languages that Compile to Javascript' - add Clojurescript : https://github.com/clojure/clojurescript/wiki. Also see ClojurescriptOne : http://clojurescriptone.com/

Posted By Don Mullen / Posted on 03/10/2012 at 7:29 AM


Andrew Mackenzie I'd add GWT in the ones that compile to JavaScript.

I think Dart has its own VM and does not compile to JavaScript?

Posted By Andrew Mackenzie / Posted on 03/10/2012 at 11:58 AM


Glyn Typo Girhub near the top. No need to publish this

Posted By Glyn / Posted on 03/11/2012 at 1:58 PM


James can I put this info in my workplace wiki or are you copywrited?

Posted By James / Posted on 03/12/2012 at 4:33 AM


Paul L. Here is another listing for 'Full-stack Frameworks/Toolkits' - DHTMLX library: http://dhtmlx.com/docs/products/dhtmlxSuite/index.shtml

and also for 'Mobile Specific' category - DHTMLX Touch: http://dhtmlx.com/touch/

Posted By Paul L. / Posted on 03/12/2012 at 5:56 AM


Brian Rinaldi @all - I will try to answer comments in small groups so as not to inundate everyone with email.

@Sam Farmer - thanks for the tip, added.

@YoungBo Kim - added, though my description is sparse since I couldn't decipher the Chrome translated Korean. Feel free to suggest an improved brief description.

@Brian Riley - After giving it some thought, I am holding off adding DeftJS just because it is essentially an add on for Sencha/Ext. I avoided listing add-ons (to the best of my knowledge) to keep this list from getting unwieldy and less useful. I am open to discussing though.

@laverchere - added. I had initially held off because it didn't seem there was a separate library but decided to include anyway. I suppose Kendo should get the same treatment then?

@Dan Fredericks - you don't have to use anything more than jquery if that suits all your needs. Depends on what you are building and the architecture you choose.

@Brian - agreed "full stack" is a bit loose. For that matter, so is "supplemental." The groupings were tough to come up with. I am open to hearing if people have better suggestions. As for SproutCore, version 1.8 was released only days ago.

@heff - I avoided adding general libraries like video.js. There are tons of tools for out there and I didn't want to add every one. These were mostly application frameworks.

@chris - thanks. Wasn't aware of WTFramework. Looks interesting.

@Rick Waldron - great meeting you the other day at the HTML5 training at Bocoup. Popcorn.js looked really impressive but, as I said to heff, I am trying to decide if adding all sorts of related libraries would make this too broad to be useful. I am open to discussing though.

@Richard Marsh - same as the above regarding HighCharts.

@Don Mullen - Thanks. Added clojurescript.

@Andrew Mackenzie - Added GWT. As for Dart, it includes a Dart-to-JavaScript compiler (aka frog).

@Glyn - thanks. fixed.

@James - feel free to post to your workplace wiki.

Posted By Brian Rinaldi / Posted on 03/12/2012 at 6:03 AM


Brian Rinaldi @Paul L - added.

Also added Qooxdoo via email suggestion.

Posted By Brian Rinaldi / Posted on 03/12/2012 at 6:32 AM


Dathan Awesomest post ever. Thank you!

Posted By Dathan / Posted on 03/12/2012 at 12:49 PM


Manuel Jasso How abut adding YUI Test to the testing libraries?

Posted By Manuel Jasso / Posted on 03/14/2012 at 9:00 AM


libwatch admin Great list, thanks! I'm building a site which notifies followers of updates to some of these libraries... and this is a great source for finding more relevant ones.

Btw, all feedback is VERY welcome (click my name below to go to the site).

Posted By libwatch admin / Posted on 03/21/2012 at 5:52 AM


Maxim There recently had been added one HTML5 javascript framework jRIApp. It was specially designed to build LOB applications like it is done in Silverlight with WCF RIA services. It is based on MVVM pattern and also has data service part. It is published under MIT license on GitHub. And now to your question, it has superb DataGrid, which i think is the best. If you are programming in C# (it has data service written in C#) and know how to program ASP.NET MVC - it will be your first choice. You can watch demo on youtube http://www.youtube.com/watch?v=CxWcC2O8u-k

Posted By Maxim / Posted on 04/04/2013 at 7:12 AM


Write your comment



(it will not be displayed)







About

My name is Brian Rinaldi and I am the Web Community Manager for Flash Platform at Adobe. I am a regular blogger, speaker and author. I also founded RIA Unleashed conference in Boston. The views expressed on this site are my own & not those of my employer.