When comparing Ractive vs Rivets, the Slant community recommends Rivets for most people. In the question“What are the best React.js alternatives?” Rivets is ranked 16th while Ractive is ranked 22nd. The most important reason people chose Rivets is:
Rivets takes DOM element as input, which has special attributes prefixed with 'rv-'. So you may declare DOM element in whatever language you like, even in HTML.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Live, reactive templating
Ractive.js is a template-driven UI library, but unlike other tools that generate inert HTML, it transforms your templates into blueprints for apps that are interactive by default.
Pro Powerful and extensible
Two-way binding, animations, SVG support and more are provided out-of-the-box – but you can add whatever functionality you need by downloading and creating plugins.
Pro Supports a true templating language
Ractive fully supports a templating language. To be more precise, views are written with a variant of Mustache, which is also extended to support inline JavaScript expressions. Soon it will be able to support other templating languages.
Pro Virtual DOM
Instead of relying on the DOM, Ractive implements a virtual DOM from scratch, allowing it to calculate precisely what needs to be patched during the next screen refresh. This is orders of magnitude faster than fiddling with the DOM itself.
Pro Doesn't require special DOM declaration syntax like JSX
Rivets takes DOM element as input, which has special attributes prefixed with 'rv-'. So you may declare DOM element in whatever language you like, even in HTML.
Cons
Con Ractive's two way binding can be a source of bugs
Two-way data-binding means that a HTML element in the view and an Ractive model are binded, and when one of them is changed so is the other. One-way data-binding for example does not change the model when the HTML element is changed.
This is a rather controversial subject and many developers consider two-way data binding an anti-pattern and something that is useless in complex applications because it's very easy to create complex situations by using it and being unable to debug them easily or understand what's happening by just looking at the code.
Con Seems to be abandoned
No new commits have been pushed since March 2015.