HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
jb55
bquery
CoffeeScript2012–2012
jb55 / bquery

bquery

A library for building modular and composable Backbone.js applications

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

What to know before exploring

What it is

A library for building modular and composable Backbone.js applications

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:03:16 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 hour2 dated mentions

Observed mentions: 2012-08-24 14:56:58 UTC to 2012-08-25 11:50:41 UTC.

012012-08-24 14:00:00 UTC to 2012-08-24 15:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsAug 24, 14:002012-08-24 15:00:00 UTC to 2012-08-24 16:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-24 16:00:00 UTC to 2012-08-24 17:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-24 17:00:00 UTC to 2012-08-24 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-24 18:00:00 UTC to 2012-08-24 19:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-24 19:00:00 UTC to 2012-08-24 20:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-24 20:00:00 UTC to 2012-08-24 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-24 21:00:00 UTC to 2012-08-24 22:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-24 22:00:00 UTC to 2012-08-24 23:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-24 23:00:00 UTC to 2012-08-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-25 00:00:00 UTC to 2012-08-25 01:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsAug 25, 00:002012-08-25 01:00:00 UTC to 2012-08-25 02:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-25 02:00:00 UTC to 2012-08-25 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-25 03:00:00 UTC to 2012-08-25 04:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-25 04:00:00 UTC to 2012-08-25 05:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-25 05:00:00 UTC to 2012-08-25 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-25 06:00:00 UTC to 2012-08-25 07:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-25 07:00:00 UTC to 2012-08-25 08:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-25 08:00:00 UTC to 2012-08-25 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-25 09:00:00 UTC to 2012-08-25 10:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-25 10:00:00 UTC to 2012-08-25 11:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-08-25 11:00:00 UTC to 2012-08-25 12:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsAug 25, 11: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
Aug 24, 14:002012-08-24 14:00:00 UTC2012-08-24 15:00:00 UTC101
Aug 24, 15:002012-08-24 15:00:00 UTC2012-08-24 16:00:00 UTC000
Aug 24, 16:002012-08-24 16:00:00 UTC2012-08-24 17:00:00 UTC000
Aug 24, 17:002012-08-24 17:00:00 UTC2012-08-24 18:00:00 UTC000
Aug 24, 18:002012-08-24 18:00:00 UTC2012-08-24 19:00:00 UTC000
Aug 24, 19:002012-08-24 19:00:00 UTC2012-08-24 20:00:00 UTC000
Aug 24, 20:002012-08-24 20:00:00 UTC2012-08-24 21:00:00 UTC000
Aug 24, 21:002012-08-24 21:00:00 UTC2012-08-24 22:00:00 UTC000
Aug 24, 22:002012-08-24 22:00:00 UTC2012-08-24 23:00:00 UTC000
Aug 24, 23:002012-08-24 23:00:00 UTC2012-08-25 00:00:00 UTC000
Aug 25, 00:002012-08-25 00:00:00 UTC2012-08-25 01:00:00 UTC000
Aug 25, 01:002012-08-25 01:00:00 UTC2012-08-25 02:00:00 UTC000
Aug 25, 02:002012-08-25 02:00:00 UTC2012-08-25 03:00:00 UTC000
Aug 25, 03:002012-08-25 03:00:00 UTC2012-08-25 04:00:00 UTC000
Aug 25, 04:002012-08-25 04:00:00 UTC2012-08-25 05:00:00 UTC000
Aug 25, 05:002012-08-25 05:00:00 UTC2012-08-25 06:00:00 UTC000
Aug 25, 06:002012-08-25 06:00:00 UTC2012-08-25 07:00:00 UTC000
Aug 25, 07:002012-08-25 07:00:00 UTC2012-08-25 08:00:00 UTC000
Aug 25, 08:002012-08-25 08:00:00 UTC2012-08-25 09:00:00 UTC000
Aug 25, 09:002012-08-25 09:00:00 UTC2012-08-25 10:00:00 UTC000
Aug 25, 10:002012-08-25 10:00:00 UTC2012-08-25 11:00:00 UTC000
Aug 25, 11:002012-08-25 11:00:00 UTC2012-08-25 12:00:00 UTC101

What Hacker News says

2 sources
when I realized that in the end backbone is just javascript and suffers from the same inheritence problems due to its crappy prototype object model. And you manually have to deal with event disposal when destroying views in backbone. just google backbone ghost views, I realized maybe it wasn't the best thing for the job after all. edit: the top comment mentions mixins, good stuff https://github.com/jb55/bquery but personally i can't wait until we get a proper replacement for javascript, like dart maybe.
In Backbone has made me a better programmer
When we started using Backbone it was good for awhile until there was so much code duplication all over the place. We decided to build a small declarative API on top of backbone that allows us to easily compose views by mixing in common functionality. It looks something like this: AlbumsView = bQuery.view() .set("el", "#albums-view") .init((opts={})-> @readOnly = opts.readOnly or no @app = opts.app ) .use(Mixins.bq.init('albums')) .use(Mixins.bq.collection tag: "#album-list" createView: (m) -> AlbumView = Views.AlbumView(readOnly: @readOnly) new AlbumView { model: m, app: @app } ) .use(Mixins.bq.filterable pred: (album, ftext) -> album.get('title').indexOf(ftext) is 0 filterTag: "#filter" collectionTag: "#album-li
Read the rest
st" ) .on("click #addNew", -> @collection.create title: "New Album" type: "Album" ) .make() For example, the Mixins.bq.collection plugin abstracts away the common task of adding and removing subviews when new things are added the collection. The filterable plugin abstracts away the common task of filtering collections. Our custom init plugin sets up all the events common to all of our views. In the end make() just returns a BackboneView with all the events set up properly. It has saved us so much time we figure people may actually want to use this as well, we just have to write the documentation and some plugins now :) https://github.com/jb55/bquery
In Backbone has made me a better programmer

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.