HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
varvet
serenade.js
CoffeeScript2012–2012
varvet / serenade.js · Archived

serenade.js

Client side MVC framework

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

What to know before exploring

What it is

Client side MVC framework

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, 3:56:07 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 week5 dated mentions

Observed mentions: 2012-01-30 15:07:11 UTC to 2012-06-15 08:55:54 UTC. Weeks start Monday, UTC.

012342012-01-30 00:00:00 UTC to 2012-02-06 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 commentsJan 302012-02-06 00:00:00 UTC to 2012-02-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-02-13 00:00:00 UTC to 2012-02-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-02-20 00:00:00 UTC to 2012-02-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-02-27 00:00:00 UTC to 2012-03-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-03-05 00:00:00 UTC to 2012-03-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-03-12 00:00:00 UTC to 2012-03-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-03-19 00:00:00 UTC to 2012-03-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-03-26 00:00:00 UTC to 2012-04-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-04-02 00:00:00 UTC to 2012-04-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsApr 22012-04-09 00:00:00 UTC to 2012-04-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-04-16 00:00:00 UTC to 2012-04-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-04-23 00:00:00 UTC to 2012-04-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-04-30 00:00:00 UTC to 2012-05-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-05-07 00:00:00 UTC to 2012-05-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-05-14 00:00:00 UTC to 2012-05-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-05-21 00:00:00 UTC to 2012-05-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-05-28 00:00:00 UTC to 2012-06-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-06-04 00:00:00 UTC to 2012-06-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-06-11 00:00:00 UTC to 2012-06-18 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJun 11

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
Jan 302012-01-30 00:00:00 UTC2012-02-06 00:00:00 UTC413
Feb 62012-02-06 00:00:00 UTC2012-02-13 00:00:00 UTC000
Feb 132012-02-13 00:00:00 UTC2012-02-20 00:00:00 UTC000
Feb 202012-02-20 00:00:00 UTC2012-02-27 00:00:00 UTC000
Feb 272012-02-27 00:00:00 UTC2012-03-05 00:00:00 UTC000
Mar 52012-03-05 00:00:00 UTC2012-03-12 00:00:00 UTC000
Mar 122012-03-12 00:00:00 UTC2012-03-19 00:00:00 UTC000
Mar 192012-03-19 00:00:00 UTC2012-03-26 00:00:00 UTC000
Mar 262012-03-26 00:00:00 UTC2012-04-02 00:00:00 UTC000
Apr 22012-04-02 00:00:00 UTC2012-04-09 00:00:00 UTC000
Apr 92012-04-09 00:00:00 UTC2012-04-16 00:00:00 UTC000
Apr 162012-04-16 00:00:00 UTC2012-04-23 00:00:00 UTC000
Apr 232012-04-23 00:00:00 UTC2012-04-30 00:00:00 UTC000
Apr 302012-04-30 00:00:00 UTC2012-05-07 00:00:00 UTC000
May 72012-05-07 00:00:00 UTC2012-05-14 00:00:00 UTC000
May 142012-05-14 00:00:00 UTC2012-05-21 00:00:00 UTC000
May 212012-05-21 00:00:00 UTC2012-05-28 00:00:00 UTC000
May 282012-05-28 00:00:00 UTC2012-06-04 00:00:00 UTC000
Jun 42012-06-04 00:00:00 UTC2012-06-11 00:00:00 UTC000
Jun 112012-06-11 00:00:00 UTC2012-06-18 00:00:00 UTC101

What Hacker News says

5 sources
Another framework worth taking a look it in this general category is https://github.com/elabs/serenade.js. It's a lot smaller and comes with it's own haml inspired templating language (whether those are pros or cons is up to each person to decide), but it feels very much in the same spirit as AngularJS, with two-way data binding and plain javascript objects.
In AngularJS 1.0 released
1) Smalltalk 80 style design The advantage is that the controller knows nothing about the DOM, so it is usable and testable without the DOM. And while I agree that it's a single line to add a binding, that quickly becomes a single line for every single event you ever want to listen to. It ends up being a sizable amount of code. Aside from that, it seems clear that binding data is best done in the view, not in the model or controller, why are events different? 2) Using normal JavaScript objects You don't have to extend the objects with Serenade.Properties. The downside is that data in the view isn't automatically updated. But as in the first examples in the README, it's perfectly acceptable to send in "JSON" directly to the view. In the example right after the one you posted, I show how to add properties to the prototype. The intent is not
Read the rest
to sidestep prototypal inheritance, but since multiple inheritance or mixins aren't available in JavaScript, copying over the functions is as close as we can get. 3) Break out I just realized that it's not documented in the README, I'll have to fix that, but it's possible to add custom instructions. Any function added to `Serenade.Helpers` is available as an instruction in the view. This is very similar to handlebar's registerHelper. See the spec here: https://github.com/elabs/serenade.js/blob/master/spec/integr... 4) Performance I have not done any benchmarks, so honestly I can't say how it compares performance wise. I'm not terribly worried about IE7. At the moment, we don't even support it, and it'll be dead soon. We could possible use document fragments to speed up the rendering, but I'm unsure if it actually makes a difference. I would argue that Rails is slow, Ruby is slow, PHP is slow, Java is slow, C is slow, etc..
In Why Serenade?

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.