- Guides
- Architecture
- BEM
- Atomic Design
- Aura is an event-driven architecture for developing scalable applications using reusable widgets.
- Terrific.js provides you a Scalable Javascript Architecture, that helps you to modularize your jQuery/Zepto Code in a very intuitive and natural way
- Patterns For Large-Scale JavaScript Application Architecture
- Video: Nicholas Zakas: Scalable JavaScript Application Architecture
- Book: Learning JavaScript Design Patterns
- Book: Eloquent JavaScript
- Book: Single page apps in depth
- jQuery Application Architecture Chart
- How To Manage Large jQuery Apps
- Scalable and Modular Architecture for CSS
- Comparison between different Observer Pattern implementations
- Workflow
- Video: Javascript Development Workflow of 2013 by Paul Irish + Slides
- Yeoman is a robust and opinionated set of tools, libraries, and a workflow that can help developers quickly build beautiful, compelling web apps.
- Grunt is a task-based command line build tool for JavaScript projects.
- Web development is getting complex. Let's go shopping.
- GruntStart: A Grunt-enabled head-start with the H5BP, jQuery, Modernizr, and Respond. The building blocks to quickly get started with Grunt to create an optimized website.
- A beginner’s guide to Grunt
- Grunt - Synchronised Testing Between Browsers/Devices
- Front-end Process - Flat Builds and Automation
- CSSCSS: A CSS redundancy analyzer that analyzes redundancy.
- Helium - javascript tool to scan your site and show unused CSS
- Roots
- Sparky.js is a client-side application scaffold which helps those who want to have organized structure in their app, but don't want to subscribe to a particular client-side MVC framework.
- Brunch is an assembler for HTML5 applications. It‘s agnostic to frameworks, libraries, programming, stylesheet & templating languages and backend technology.
- Automaton: Task automation tool built in JavaScript.
- Cartero
- Frameworks
- JavaScript
-
Angular
- Github
- Learning
- AngularJS-Learning: huge list of Angular learning resources
- AngularJS Screencasts
- Building Huuuuuge Apps with AngularJS
- What are the nuances of scope prototypal / prototypical inheritance in AngularJS?
- AngularJS from Basics to Dependency Injection
- AngularJS To Do List App
- AngularJS vs Ember
- The Hitchhiker’s Guide to the Directive
- Frontend Workflows with Grunt and Angular JS
- Integration
- angular-requirejs-seed: this is a fork of Angular Seed but with changes needed for requireJS support.
- Writing Reusable AngularJS Components with Bower
- Native AngularJS directives for Twitter's Bootstrap.
- Automating AngularJS With Yeoman, Grunt & Bower
- Optimizing Angular Templates with Grunt on Heroku
- Building Offline Applications With AngularJS and PouchDB
-
jQuery
-
Backbone
-
React by Facebook
-
Flight is an event-driven web framework, from Twitter
-
Singool.js Lightweight JavaScript framework for developing single-page web applications
-
Knockout: Simplify dynamic JavaScript UIs by applying the Model-View-View Model (MVVM) pattern
-
Sammy.js is a tiny JavaScript framework developed to ease the pain and provide a basic structure for developing JavaScript applications.
-
Ember.js: A framework for creating ambitious web applications.
-
Maria: The MVC framework for JavaScript applications. The real MVC. The Smalltalk MVC. The Gang of Four MVC.
-
Terrific Composer is a Frontend Development Framework specifically designed for building deluxe frontends based on the Terrific concept
-
Rivets.js: Lightweight and powerful data binding + templating solution for building modern web applications.
-
Synapse: Data Binding For The Rest Of Us
-
A Comprehensive Collection Of Javascript Application Frameworks
- CSS
- A collection of best frameworks
- Twitter Bootstrap
- Home Page
- Github
- Download
- Bootstrap Hero List: The big badass list of bootstrap resources
- Widgets
- Color and Date Picker
- WYSIHTML5 RTE for Bootstrap
- Bootstrap Image Gallery
- jQuery UI Bootstrap
- Pines Notify: JavaScript notifications for Bootstrap or jQuery UI.
- fuelUX: Fuel UX extends Twitter Bootstrap with additional lightweight JavaScript controls.
- A date range picker for Twitter Bootstrap
- Bootbox.js: alert, confirm and flexible dialogs for Twitter's Bootstrap framework
- Time Picker
- Date/Time Picker
- ReCaptcha
- Bootstrap Modal: Extends Bootstrap's native modals to provide additional functionality.
- SelectBoxIt
- File Upload
- BootPag: BootPag - dynamic pagination jQuery plugin for twitter bootstrap
- Bootstrap Arrows: A simple jQuery plugin and add-on to the popular Twitter Bootstrap framework to include the use of arrows at any angle in your UI designs.
- X-editable: In-place editing with Twitter Bootstrap, jQuery UI or pure jQuery
- Pagination
- Slider
- Application Wizard
- Themes
- Bootswatch: Theme catalog.
- Jumpstart UI: Another catalog for paid themes
- Darkstrap: A dark theme.
- jQuery Mobile Boostrap: A jQuery Mobile theme based on Twitter Bootstrap
- Wrapbootstrap
- Wordpress
- CSS3 Microsoft Modern Buttons
- BootMetro: Metro style web framework
- Cosmo: Windows 8 inspired theme
- Bootstrap Generator: Simply alter the options below and click "Generate" to get your compiled Bootstrap CSS file.
- Inspiritas
- Google+
- Flatstrap
- Pinstrap
- Misc
- Boilerstrap: A blank slate for the modern web. Just add creativity.
- Bootstrap GUI PSD: a toolkit designed to kickstart webdesign of webapps and sites.
- Font Awesome: The iconic font designed for use with Twitter Bootstrap
- Typo3 Extension
- Bootstrap CDN Free CDN for Twitter Bootstrap
- Bootstrap Tour Quick and easy way to build your product tours with Twitter Bootstrap Popovers.
- Bootsnipp: Design elements and code snippets for Bootstrap HTML/CSS/JS framework
- Form Builder
- PaintStrap: Generate beautiful Twitter Bootstrap themes using the Adobe kuler / COLOURlovers color scheme
- TODC: A Google-styled theme for Twitter Bootstrap.
- Layoutit!
- Responsive Grid System
- Responsive Grid System (2)
- Golden Grid System
- Compass
- Pondasee
- Centurion
- Foundation 3
- ProfoundGrid
- Groundwork
- skelJS
- Ink
- neat
- Kube
- rwdgrid
- Simple Grid
- One% CSS Grid
- Workless
- inuit.css - a powerful, scalable, Sass-based, BEM, OOCSS framework.
- JavaScript
- Cross Browser
- Cross Device
- Responsive
- CSS3 Media Query Builder
- Video: Responsive Design Workflow by Stephen Hay + Slides
- Responsive Patterns
- Responsinator
- How to make a Responsive Newspaper-like layout
- The State Of Responsive Web Design
- Facing The Challenge: Building A Responsive Web Application
- Tables
- Events
- Images
- Fluid Images
- How to Use Responsive Images to Make Your Site Shine on Any Platform
- Adaptive Images
- Why We Need Responsive Images
- Riloadr: A cross-browser framework-independent responsive images loader.
- jQuery Picture
- Picturefill
- Text
- FitText: A jQuery plugin for inflating web type
- Out Of Words!: The responsive typography framework behind Words App
- Responsive Font Sizing: Making your font size respond to your screen size, easy & maintainable.
- Responsive Measure
- Mobile
- Frameworks
- jQuery Mobile: Touch-Optimized Web Framework for Smartphones & Tablets
- jQTouch is a Zepto/jQuery plugin for mobile web development on the iPhone, Android, iPod Touch, and other forward-thinking devices.
- Junior
- Emulators
- Scrolling
- jSwipeKinetic is a jQuery plugin that enables you to add kinetic scrolling on your touch optimized projects. jSwipeKinetic is build on top of jGestures (jgestues.codeplex.com).
- jQuery.pep.js: A lightweight plugin for kinetic-drag on mobile/desktop.
- Overscroll is a jQuery plug-in that mimics the iphone/ipad scrolling experience in a browser.
- Zynga Scroller
- pull-to-refresh.js
- Overthrow
- Antiscroll
- Gestures
- jGestures jQuery plugin enables you to add gesture events such as ‘pinch’, ‘rotate’, ‘swipe’, ‘tap’ and ‘orientationchange’ just like native jQuery events.
- hammer.js is a focused, standalone JavaScript library, only for multi-touch gestures.
- Touchy: is a highly configurable jQuery plugin. It exposes event data (velocity, etc.) for longpress, drag, pinch, rotate and swipe.
- TouchSwipe
- TipTap
- jQuery.event.swipe
- toe.js is a tiny library based on jQuery to enable sophisticated gestures on touch devices.
- Jester
- JS Touch Layer
- Touch Events and Abstractions
- DOM Objects Manipulation
- jQuery.event.move
- WKTouch: A JavaScript plugin for touch-capable devices, enabling multi-touch drag, scale and rotate on HTML elements.
- Tap Acceleration
- Energize
- Tappable is a simple, standalone library to invoke the tap event for touch-friendly web browsers.
- Fastclick is a simple, easy-to-use library for eliminating the 300ms delay between a physical tap and the firing of a click event on mobile browsers.
- Lightning Touch
- Creating Fast Buttons for Mobile Web Applications
- Layout
- Flickable.js allows you to make any element touchable; useful for flicking between sections, or sliding elements around the page.
- PageSlide is a jQuery plugin which slides a webpage over to reveal an additional interaction pane.
- Swipe is a lightweight mobile slider with 1:1 touch movement, resistant bounds, scroll prevention, and completely library agnostic.
- Swiper: Mobile touch slider with hardware accelerated transitions.
- jQuery Mobile Pagination Plugin
- SwipeSlide: A Zepto Plugin for iOS like swipe navigation.
- stackable.js is an invaluable jQuery plugin that stacks your tables for small screens. It’s a huge advantage in terms of usability on mobile devices.
- Reacting to Device Sensors
- lenticular.js is a jQuery plugin for creating image animations that response to tilting or mouse events.
- This End Up: Using Device Orientation
- iOS
- Safari Image Delivery Best Practices
- Safari Graphics, Media, and Visual Effects Coding How-To's
- Safari CSS Visual Effects Guide
- Safari Web Content Guide
- Getting Started with iOS Web Apps
- The iPad Web Design & Development Toolbox
- Targeting the iPhone 4 Retina Display with CSS3 Media Queries
- How do I lock the orientation to portrait mode in a iPhone Web Application?
- jQuery Retina Display Plugin
- retina.js
- Retina Images
- Frameworks
- Printers
- Responsive
- Patterns & Snippets
- Responsive Patterns
- CSS3 Code Snippets
- The Blueprints are a collection of basic and minimal website concepts, components, plugins and layouts with minimal style for easy adaption and usage, or simply for inspiration.
- DOM Manipulation
- Typography
- Quick guide to webfonts via @font-face
- How To Achieve Cross-Browser @font-face Support
- Google Fonts
- Adobe Edge Web Fonts: Get started with free web fonts.
- Typekit: easy way to use commercial web font on your site.
- Matrix of fonts bundled with Mac and Windows operating systems, Microsoft Office and Adobe Creative Suite
- Typeset.css
- typecast
- CSSTypography
- SO: @font-face fonts only work on their own domain
- FitText: A jQuery plugin for inflating web type
- TypeButter
- slabText
- Baseline.js
- jKerny
- Lettering.js
- Trunk8 is an intelligent text truncation plugin to jQuery. It will cut off just enough text to prevent it from spilling over
- bacon is a jQuery plugin that allows you to wrap text around a bezier curve or a line.
- CSS Typography cheat sheet: Small roundup on CSS features that will enhance your web typography.
- Services (Free & Commercial)
- colourco
- Color Scheme Designer: find resonate colors for a great design.
- HTML Entity Character Lookup
- SpritePad
- Responsinator
- TheToolbox
- HTML Shell
- Form Builder
- Zen BG
- Prepros
- site44
- Website Builders
- Programming & Markup Languages
- CSS
- [Understanding border-image](Understanding border-image)
- What No One Told You About Z-Index
- Principles of writing consistent, idiomatic CSS
- JavaScript
- Javascript Closures
- Combinator Recipes for Working With Objects in JavaScript
- Prototypes and Inheritance in JavaScript
- JavaScript Study Guide
- ECMA 262-3 in detail
- JavaScript Garden
- Extensions
- RubyJS is a JavaScript implementation of all methods from Ruby classes like Array, String, Numbers, Time and more.
- Mout is a collection of modular JavaScript utilities that can be used in the browser as AMD modules or on node.js (without any overhead).
- bacon.js: A small functional reactive programming lib for JavaScript.
- Flow Control
- Coroutine Event Loops in Javascript
- How To Node Article on promises describing both sides: node.js and browser
- Video by Douglas Crockford on monads which is touching Promises
- Не надо давать обещания, или Promises наоборот
- Promises are the monad of asynchronous programming
- A Study on Solving Callbacks with JavaScript Generators
- What's The Point Of Promises?
- Promises/A+ Spec
- Callbacks vs Coroutines
- This document is intended to explain how promises work
- Libraries
- Standalone-Deferred
- Standalone-Deferred
- Flowy
- Step
- kew is a lightweight promise library optimized for node.js
- jQuery Timing
- RSVP.js
- q
- Watch.js
- Video: Monads and Gonads (YUIConf Evening Keynote)
- HTML
- Higher Level Languages
- Dart: Typed language compiled to JavaScript. By Google.
- Sass is an extension of CSS3, adding nested rules, variables, mixins, selector inheritance, and more. It’s translated to well-formatted, standard CSS using the command line tool or a web-framework plugin.
- Less extends CSS with dynamic behavior such as variables, mixins, operations and functions.
- Roole is a language that compiles to CSS.
- Stylus: Expressive, dynamic, robust CSS
- CSS
- Animation
- Stylie
- animate.less, is a bunch of cool, fun, and cross-browser animations converted into LESS for you to use in your Bootstrap projects. Great for emphasis, home pages, sliders, and general just-add-water-awesomeness.
- Canvas Advanced Animation Toolkit is an scene graph director-based animation framework for javascript based in the concept of a timeline.
- tween.js: Super simple, fast and easy to use tweening engine which incorporates optimised Robert Penner's equations.
- Janis is a lightweight Javascript framework that provides simple animations via CSS transitions for modern browsers on the web as well as mobile devices.
- Rekapi: A keyframe animation library for JavaScript
- CanvasScript3 is a Javascript library for the new HTML5 Canvas with an interface similar to ActionScript3. This library enables Sprite Groups, Layers, Mouse Events, Keyboard Events, Bitmap Effects, Tween Animations etc.
- Shifty is a tweening engine built in JavaScript. It is designed to fit any number of tweening needs.
- emile.js is a no-frills stand-alone CSS animation JavaScript framework.
- Firmin: a JavaScript animation library using CSS transforms and transitions.
- $fx(): A compact, lightweight Javascript Library for animation.
- Keanu is a micro-lib for animation on Canvas/JS.
- jsAnim is a powerful, yet easy to use library for adding impressive animations to websites, without sacrificing standards or accessibility. Weighing in at just under 25 kilobytes, jsAnim packs a lot of punch for such a little application.
- scripty2 is an open source JavaScript framework for advanced HTML-based user interfaces. Or simply put, scripty2 helps you build a more delicious web.
- Animator.js: JavaScript animation library.
- Processing.js: is the sister project of the popular Processing visual programming language, designed for the web. Processing.js makes your data visualizations, digital art, interactive animations, educational graphs, video games, etc. work using web standards and without any plug-ins.
- jQuery Transit: Super-smooth CSS3 transformations and transitions for jQuery.
- Move.js is a small JavaScript library making CSS3 backed animation extremely simple and elegant.
- Collie is a Javascript library that helps to create highly optimized animations and games using HTML 5.
- Year Of Moo: Angular.js Animations
- animate.css is a bunch of cool, fun, and cross-browser animations for you to use in your projects. Great for emphasis, home pages, sliders, and general just-add-water-awesomeness.
- Approach
- Widgets
- Kits
- AlloyUI
- Kendo UI
- jQuery UI Bootstrap
- Zebra: JavaScript library that follows easy OOP concept, provides HTML5 Canvas based Rich UI and includes Java to JavaScript converter tool
- File Upload
- Sitemap
- Table Of Contents
- Modals
- Notifications
- Gallery Sliders
- Pagination
- Selects
- Progress Bars
- Trees
- Navigation
- Tooltips
- Misc
- jQuery Knob
- DopelessRotate
- jQuery Addresspicker
- Fangle: create interactive documents from plain text.
- Kits
- Visualization
- Photon
- CSS3 shapes
- Morris.js
- Cube
- Cubism.js
- D3.js
- Crossfilter
- Datavisualization.ch
- jQuery.Gantt
- easy pie chart
- Gauge.js
- Google Chart Tools
- Piecon
- Viskit.js
- jStat
- CHAP Links Library
- bonsai
- Smoothie Charts
- DataMaps
- mxgraph
- Paper.js is an open source vector graphics scripting framework that runs on top of the HTML5 Canvas.
- Timeline.js: A Storytelling Timeline built in JavaScript.
- xCharts is a JS library for creating attractive, custom data-driven chart visualizations. It uses HTML, CSS, and SVG to create dynamic, fluid charts that can be easily customized and integrated.
- jQuery Gantt editor
- amCharts is a robust charting tool that will suit any dataviz need.
- Validation & Forms
- ALAJAX
- Parsley.js: Validate your forms, frontend, without writing a single line of javascript!
- mailcheck.js: A jQuery plugin that suggests a right domain when your users misspell it in an email address.
- one-validation is a collection of regular expressions for general validation purposes.
- nextVal is an easy-to-use, flexible and robust form validation plugin for jQuery.
- Fields.js creates collections of fields. Each field is constantly evaluated for validity, and is accessible through the collection.
- IV.js was created to provide a intutive way to provide validation filters that are useful in processing user input.
- Ladda: A UI concept which merges loading indicators into the action that invoked them.
- jQuery Super Labels
- Transitions
- Numbers
- Time and Dates
- Search
- Testing
- FiveUI Extensible/open browser extension & headless system for testing UI Consistency guidelines (or anything else you can test with injected JS).
- Writing Testable JavaScript
- Writing Testable Frontend Javascript Part 1 – Anti-patterns and their fixes
- Introduction to BDD
- cucumber
- cucumber.js
- Gherkin is the language that Cucumber understands.
- Template Engines
- ICanHaz.js
- Hogan.js
- Handlebars.js
- Transparency
- doT.js
- Walrus
- Chibi
- Templayed.js
- ECT: Fastest JavaScript template engine with CoffeeScript syntax
- pithy: An internal DSL for generating HTML in JavaScript
- T: T.js is a template engine that uses simple Javascript data structure to represent html/xml data.
- Nunjucks is a full featured templating engine for javascript.
- Jade
- Linked.in Dust.js
- RoutingAndUrls
- Rich Text Editors
- Code Viewers & Editors
- Rainbow.js
- Intelligist
- Prism.js
- Brackets: An open source code editor for the web, written in JavaScript, HTML and CSS by Adobe.
- CodeMirror
- Scripted
- tabIndent.js
- Behave.js is a lightweight library for adding IDE style behaviors to plain text areas, making it much more enjoyable to write code in.
- Refactoring
- Performance
- Writing Fast, Memory-Efficient JavaScript
- CSS-only: Load images on demand
- Videos
- Faster HTML and CSS: Layout Engine Internals for Web Developers: by David Baron of Mozilla
- Google I/O 2012 - Breaking the JavaScript Speed Limit with V8
- DOM, HTML5, & CSS3 Performance: A video by Paul Irish
- Nicholas Zakas | High Performance Javascript
- Building A Performant HTML5 App with Trunal Bhanse and Akhilesh Gupta (LinkedIn)
- General Information
- Memory
- Tools
- Chrome Developer Tools
- V8
- Optimizing for V8 - very technical series on the V8 engine
- I-want-to-optimize-my-JS-application-on-V8 checklist
- Performance tips for JavaScript in V8
- JavaScript Leak Finder
- Navigation Timing
- Firebug Paint Events
- Locache: JavaScript caching framework for client side caching in the browser using localStorage
- DOM Manipulation
- Rendering: repaint, reflow/relayout, restyle
- Reflows & Repaints: CSS Performance making your JavaScript slow?
- The new game show: "Will it reflow?"
- When does reflow happen in a DOM environment?
- Speeding up JavaScript: Working with the DOM
- Efficient JavaScript on dev.opera.com
- When Does JavaScript trigger reflows and rendering
- How (not) to trigger a layout in WebKit
- Animation
- requestAnimationFrame for smart animating
- Leaner, Meaner, Faster Animations with requestAnimationFrame
- Collie - high performance Animation library
- Using requestAnimationFrame to Optimize Dragging Events
- requestAnimationFrame API: now with Sub-Millisecond Precision
- Why moving elements with translate() is better than pos:abs top/left
- Hardware Acceleration
- Browser Internals
- How Browsers Work: Behind the scenes of modern web browsers
- How Browsers Work - Part 1 - Architecture
- Know Your Engines at O’Reilly Velocity 2011
- Video: GDC 2012: From Console to Chrome
- Fast CSS: How Browsers Lay Out Web Pages
- Video: What Browsers Really Think of Your App
- WebKit blog five-part series on rendering
- Video: Alex Russell - Life Of A Button Element
- How a web page loads
- Video: The Fundamentals, Primitives and History of HTML5
- The JavaScript engine family tree
- How JavaScript compilers work
- JavaScript compiler strategies
- The future for JavaScript
- HTTP Transport
- Modularity & Loaders
- Lazy Module Declaration - JavaScript Module-Assembler for building better web applications
- UMD (Universal Module Definition) patterns
- Browserify
- require.js
- CrapLoader
- Writing Modular JavaScript With AMD, CommonJS & ES Harmony
- Путь JavaScript модуля
- Modular JavaScript with RequireJS
- LABjs & RequireJS: Loading JavaScript Resources the Fun Way
- JavaScript Inheritance and Public/Private members
- Deep dive into the murky waters of script loading
- Terminology: Modules
- Package Management
- bower
- volo
- parcel is easy package management using a file server and path conventions, with built in support for Amazon S3. It is designed to encode package metadata, including name, version and OS within a path. The conventions allow this metadata to be queried, without the need for a database.
- jam.js
- component
- Image Manipulation
- HTTP
- Error Handling & Debugging
- Tracing.js - Javascript function tracing.
- JavaScript error handling anti-pattern
- Tattletale
- Documentation
- dexy is a free-form literate documentation tool for writing any kind of technical document incorporating code.
- docco is a quick-and-dirty, hundred-line-long, literate-programming-style documentation generator.
- Ronn builds manuals. It converts simple, human readable textfiles to roff for terminal display, and also to HTML for the web.
- dox is a JavaScript documentation generator written with node. Dox no longer generates an opinionated structure or style for your docs, it simply gives you a JSON representation, allowing you to use markdown and JSDoc-style tags.
- YUIDoc is a Node.js application that generates API documentation from comments in source, using a syntax similar to tools like Javadoc and Doxygen.
- coddoc is a jsdoc parsing library. Coddoc is different in that it is easily extensible by allowing users to add tag and code parsers through the use of coddoc.addTagHandler and coddoc.addCodeHandler. coddoc also parses source code to be used in APIs.
- sphinx a tool that makes it easy to create intelligent and beautiful documentation
- Using JSDoc
- Windows 8 Style
- Metro UI CSS
- BootMetro
- metro-bootstrap
- Metro UI Template
- Droptiles – Metro-Style Web Dashboard
- Metro JS
- Windows Metro tiles with Javascript and CSS3
- Cosmo
- Video: What Web Developers Need to Know When Building Metro style Apps
- CSS3 Microsoft Modern Buttons
- Visual Studio 2012 Image Library - 5,000+ Images Downloadable Now
- Metro User Interface Implementation and Resources
- Windows-8-like animations with CSS3 and jQuery: a demo made by Sara Soueidan about creating a Modern UI design like in Windows 8.
- Video
- Audio
- Library Collections
- jster
- MicroJS helps you discover the most compact-but-powerful microframeworks.
- JSPkg: reference library and package manager
- TheToolbox: more general collection of tools
- Unheap
- Chat
- Prototyping
- JSON
- JSON Query Language is a query and processing language specifically designed for the popular JSON data model.
- Oboe.js makes it really easy to start using json from a response before the ajax request completes; or even if it never completes.
- Presentations
- Scrolling
- Keyboard
- Tables & DataGrids
- Security
- Layout
- Shapeshift is a plugin which will dynamically arrange a collection of elements into a column grid system similar to Pinterest.
- CollagePlus: This plugin for jQuery will arrange your images to fit exactly within a container.
- Misc
- zip.js
- simpleCart.js
- Aware.js is a simple jQuery plugin that allows a site to customize and personalize the display of content based on a reader's behavior without requiring login, authentication, or any server-side processing.
- How to directly upload files to Amazon S3 from your client side web app
- jsFiddle