HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
Rich-Harris
ractive
JavaScript2013–2013
Rich-Harris / ractive

ractive

Next-generation DOM manipulation

2Distinct people
3Mentions
0Explicit recommenders
5GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Next-generation DOM manipulation

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by 3-hour interval3 dated mentions

Observed mentions: 2013-07-24 15:36:04 UTC to 2013-07-27 12:39:49 UTC.

0122013-07-24 15:00:00 UTC to 2013-07-24 18:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJul 24, 15:002013-07-24 18:00:00 UTC to 2013-07-24 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-24 21:00:00 UTC to 2013-07-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-25 00:00:00 UTC to 2013-07-25 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-25 03:00:00 UTC to 2013-07-25 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-25 06:00:00 UTC to 2013-07-25 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-25 09:00:00 UTC to 2013-07-25 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-25 12:00:00 UTC to 2013-07-25 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-25 15:00:00 UTC to 2013-07-25 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-25 18:00:00 UTC to 2013-07-25 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-25 21:00:00 UTC to 2013-07-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-26 00:00:00 UTC to 2013-07-26 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJul 26, 00:002013-07-26 03:00:00 UTC to 2013-07-26 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-26 06:00:00 UTC to 2013-07-26 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-26 09:00:00 UTC to 2013-07-26 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-26 12:00:00 UTC to 2013-07-26 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-26 15:00:00 UTC to 2013-07-26 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-26 18:00:00 UTC to 2013-07-26 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-26 21:00:00 UTC to 2013-07-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-27 00:00:00 UTC to 2013-07-27 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-27 03:00:00 UTC to 2013-07-27 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-27 06:00:00 UTC to 2013-07-27 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-27 09:00:00 UTC to 2013-07-27 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-07-27 12:00:00 UTC to 2013-07-27 15:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 commentsJul 27, 12:00

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jul 24, 15:002013-07-24 15:00:00 UTC2013-07-24 18:00:00 UTC101
Jul 24, 18:002013-07-24 18:00:00 UTC2013-07-24 21:00:00 UTC000
Jul 24, 21:002013-07-24 21:00:00 UTC2013-07-25 00:00:00 UTC000
Jul 25, 00:002013-07-25 00:00:00 UTC2013-07-25 03:00:00 UTC000
Jul 25, 03:002013-07-25 03:00:00 UTC2013-07-25 06:00:00 UTC000
Jul 25, 06:002013-07-25 06:00:00 UTC2013-07-25 09:00:00 UTC000
Jul 25, 09:002013-07-25 09:00:00 UTC2013-07-25 12:00:00 UTC000
Jul 25, 12:002013-07-25 12:00:00 UTC2013-07-25 15:00:00 UTC000
Jul 25, 15:002013-07-25 15:00:00 UTC2013-07-25 18:00:00 UTC000
Jul 25, 18:002013-07-25 18:00:00 UTC2013-07-25 21:00:00 UTC000
Jul 25, 21:002013-07-25 21:00:00 UTC2013-07-26 00:00:00 UTC000
Jul 26, 00:002013-07-26 00:00:00 UTC2013-07-26 03:00:00 UTC000
Jul 26, 03:002013-07-26 03:00:00 UTC2013-07-26 06:00:00 UTC000
Jul 26, 06:002013-07-26 06:00:00 UTC2013-07-26 09:00:00 UTC000
Jul 26, 09:002013-07-26 09:00:00 UTC2013-07-26 12:00:00 UTC000
Jul 26, 12:002013-07-26 12:00:00 UTC2013-07-26 15:00:00 UTC000
Jul 26, 15:002013-07-26 15:00:00 UTC2013-07-26 18:00:00 UTC000
Jul 26, 18:002013-07-26 18:00:00 UTC2013-07-26 21:00:00 UTC000
Jul 26, 21:002013-07-26 21:00:00 UTC2013-07-27 00:00:00 UTC000
Jul 27, 00:002013-07-27 00:00:00 UTC2013-07-27 03:00:00 UTC000
Jul 27, 03:002013-07-27 03:00:00 UTC2013-07-27 06:00:00 UTC000
Jul 27, 06:002013-07-27 06:00:00 UTC2013-07-27 09:00:00 UTC000
Jul 27, 09:002013-07-27 09:00:00 UTC2013-07-27 12:00:00 UTC000
Jul 27, 12:002013-07-27 12:00:00 UTC2013-07-27 15:00:00 UTC202

What Hacker News says

3 sources
There's a Ractive.extend() function for this exact use case, which allows you to incorporate all the functionality your Backbone View would have in a reusable constructor. Info on the wiki: https://github.com/Rich-Harris/Ractive/wiki/Ractive.extend() There's also a concept of 'adaptors' which are ideal for Backbone.Model <-> Ractive binding, though it's a bit experimental and incomplete at the moment. You can bind to a model manually like model = new MyBackboneModel( attrs ); ractive = new Ractive({ el: whatever, template: tpl, data: model.attributes }); model.on( 'change', function ( model ) { ractive.set( model.changed ); });
In Ractive.js
Thanks! Yes, a lot of the feedback I've had through various channels has involved 'how does this compare to x', and I'm pleased to see that a lot of people have picked up on the similarities to Knockout. On the project homepage I specifically refer to Angular because my sense is that it will be more familiar to more people, and despite the many architectural differences they're attacking the same problem space (though Angular deals with xhr/routing etc whereas Ractive is focused on DOM stuff). I'll add a comparison table of some sort to my (lengthening!) todo list. Could you elaborate at all on 'naive and buggy'? I think I probably know what you're getting at, but I'd be interested to hear your thoughts. Array sections do have a concept of 'smart updates' - if you do e.g. list.push( newItem ) or list.splice( index, 1 ) then it will take a
Read the rest
more surgical approach to updates. You can see this in action at http://www.ractivejs.org/examples/todos/, explanation of array modification at https://github.com/Rich-Harris/Ractive/wiki/Array-modificati...
In Ractive.js

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.