component - modular javascript framework - search tool | xmojmr
Branch: gh-pages
Clone or download
Pull request Compare This branch is 646 commits ahead, 190 commits behind eirikb:gh-pages.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

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