Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
This branch is 646 commits ahead, 190 commits behind eirikb:gh-pages.

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

This is search tool for modular JavaScript component framework. The component framework was invented by TJ Holowaychuk

I have created the search tool because I was not able to find anything useful with the official search tool

My version of the search tool is available online at under WTFPL license

You can use

  1. multi-column sorting by author, component, number of stars GitHub users assigned to it, age in days, number of open issues, freshness in days, version number, number of forks
  2. full-text search in description, tags, author name, component name
  3. tag = cloud filter, multiple selected tags allow for narrowing down the search
  4. author = cloud filter, authors are up-weighted by number of projects, number of stars and down-weighted by number of open issues. Multiple selected authors allow for filtering a group of popular vendors
  5. Each query is represented by bookmarkable url

Screenshot 1

Original design was inspired by Nipster, modified to work with Component Crawler as data source.

Current Status (2014-11-04)

  • Maturity
  • (+) no serious known bugs on modern desktop browsers
  • (+) stable bookmarkable url API
  • (+) usable (full text search, tag search, author search..)
  • (-) slow and not reliable on low-end mobile devices
  • (-) slow when responding to screen or element resize events
  • Details (+)
  • Display of crawler.js database using searchable sortable jQuery DataTables works.
  • Columns author, component and issues are clickable.
  • Tag cloud is calculated correctly (shown on button click)
  • Author cloud filter (with gravatar images) is available on button click. Projects with many open issues are given less weight
  • Clicking on tags (anywhere on the screen) swithes their include/exclude filtering status
  • Search and sort and tag and author query generates stateful hash fragments (bookmarkable urls)
  • Search filter is sticked to the top of the screen
  • 1st version of REST API available
  • user interface pixel-aligned, colorized and split into 2 different responsive layouts
  • server configured to use gzip compression where possible
  • crawler.js dataset contains only subset really used by the application
  • Details (-)
  • all data processing is done in the client's browser. This causes significant delay on mobile devices
  • default 100 rows page length is too heavy to layout and render on low-end mobile processors
  • calculation of screen dimensions does not work reliably in portrait layout on mobile devices
  • some functions (e.g. cloud display) does not work as designed in Opera Mobile browser, Android 2.3 browser

3rd party credits (A→Z)

Internal API

GET /api/v1/crawler.json

Returns component crawler.js JSON dataset as described in

POST /api/v1/crawler/updates

Payload ignored. Triggers cache update of the crawler.json dataset from the server


  • Release 1.0.3
  • bugfixes
  • Release 1.0.2
  • code moved from vanilla JavaScript to TypeScript
  • Release 1.0.1
  • bugfixes and small usability improvements
  • Release 1.0.0
  • original raw look was colorized. There are two different table layouts at the breakpoint of horizontal screen size 1150 pixels
  • moved to xmojmr's site build system
  • Release 0.3.0
  • not as slow as used to be, Opera Mobile CORS problems solved by hosting on a server with PHP backend


component - modular javascript framework - search tool | xmojmr






No packages published


  • TypeScript 52.6%
  • CSS 22.0%
  • PHP 12.2%
  • HTML 10.2%
  • JavaScript 2.6%
  • ApacheConf 0.4%