The 1kb client-side MVP library

Meet the most minimal MVC approach

Riot is a standalone library that weighs 0.88kb when gzipped (1.6kb minified) and has only 3 public methods

Despite the tiny size all the building blocks are there: a template engine, router, event library and a strict MVP pattern to keep things organized. On a finished application the views are automatically updated when the underlying model changes.

You start small and add stuff as you need it – not the other way around. Minimal approach helps everyone to understand the pieces that make your application. You’ll have more control because there is no redundant code on your way.

NOTE Minified size is good for comparing the amount of code, gzipped size is good for comparing the download size.

Vanilla JavaScript

Riot applications are written with vanilla JavaScript. You use classic design patterns instead of framework specific idioms. Frameworks come and go but universal programming skills are forever.

Modular code

The purpose of Riot is to build modular applications that are easy to manage and extend by multiple developers. Your application will be “loosely coupled”. Riot.js is all about modularity and the documentation centers solely on this topic.

API centric

The frameworkless nature of Riot forces you to focus on the application API instead of building things around a certain framework. Your business logic is expressed as plain old JavaScript objects (POJO) that will run on server too.

Fast

Riot.js comes with an extremely fast JavaScript templating engine. It’s roughly 5 times faster than Resig’s “micro templating” or Underscore templating. Faster templating makes for a faster app. Compare.

This is one of the best piece of code I have seen in #js world. @notarianni

Falled in love with #riotjs. Small, fast and the code, oh, so clean. This is how every framework should be! @nongeekboy

The JavaScript manifesto I wish I could have written. @trentvb

Apropos to a my MV* complaints, riot.js actually awesome. This is almost perfect @robertmaxrees

Love the attention to design principles and simplicity. @sbellware

This is how a javascript frameworks should work - Everything else is bloat and abstraction from necessity. @devayes

An MVC library that does the same as Backbone.js etc in 1kb? Crumbs. @onion2k

This is it! You don’t really need yet another JS framework, people. All You need is knowledge how to organize your code. @pdorofiejczyk

Riot.js solves many of my challenges with the MVVM pattern. @davidcrow

If like me you think js frameworks over complicate things, then take a look at Riot.js @livingos

Riot.js is so tiny, I learned most of it while waiting for my GF trying on clothes. @kkovacs

Demo application

Our "administration panel" demo goes beyond a Todo MVC. The well documented code shows the basics of modular programming and API oriented design. Use it freely as a starting point for your own system.

Todo MVC

A Riot based Todo- application that is split into models, presenters, routers and unit tests. The tests are built with Riot's framework itself. Here is the source code. Thanks to 3den!

Connect 4 game

Another nice example that demonstrates a clean separation between models, views and presenters. The main logic is completely decoupled from riot and fully unit tested.