• a-big-triangle — Draws a big triangle onto the screen
  • gl-geometry — A flexible wrapper to set up renderable WebGL geometries
  • gl-shader — WebGL shader wrapper
  • ndarray — Multidimensional arrays for JavaScript
  • gl-particles — Convenience module for FBO-driven particle simulations
  • gl-fbo — WebGL framebuffer wrapper
  • gl-vec3 — gl-matrix's vec3, split into smaller pieces
  • perspective-camera — a high-level 3D perspective camera
  • icosphere — Generates icosphere meshes of varying levels of complexity
  • tweenr - Minimal tweening engine which operates on numbers and arrays
  • color-convert - Plain color conversion functions

Data viz


  • sodium — Port of the lib sodium encryption library to Node.js


  • gl-audio-analyzer — Pull audio waveform/frequency data into WebGL for realtime audio visualisation
  • soundcloud-badge — A SoundCloud 'now-playing' badge you can just drop into browserify demos
  • audio-clock — keep time for audio apps
  • read-audio — Read raw audio input as a stream of ndsamples
  • ndsamples — ndsamples are ndarrays in a format for audio
  • audio-rms — Connect a Web Audio API AudioNode and stream out the realtime RMS audio level
  • node-audio-rms — stream real-time RMS from ndarrays of audio samples
  • freeverb — A Web Audio implementation of freeverb (Schroeder Reverberator)
  • wave-recorder — Record WAVE files using Web Audio API and persist with Web FileSystem API
  • tap-tempo — Estimates BPM from tap events
  • midi-qwerty-keys — Use qwerty keyboard as midi keyboard in the browser
  • bopper — Streaming clock source for scheduling Web Audio events rhythmically
  • ditty — Schedule playback for a loop sequence of Web Audio events using bopper
  • audio-slot — Web Audio API FRP wrapper for creating, routing, and triggering AudioNodes
  • loop-drop-app — MIDI looper, modular synth and sampler app
  • soundbank — A collection of triggerable Web Audio API audio slots
  • bitcrush — Bitcrush effect for Web Audio API
  • meyda - Real-time Audio Feature Extraction for the Web Audio API
  • web-audio-player - cross-browser WebAudio player


  • canvid — play video on canvas elements (without audio)
  • mp4-stream - Streaming mp4 encoder and decoder
  • mediasource - media source api as a writable stream


  • standard — JavaScript standard style linter
  • changelog-maker — A git log to tool
  • vtop — visual top
  • pkg-name — Check whether a package name is available on npm
  • wzrd — Super minimal browserify development server
  • garnish — prettifies ndjson from wzrd and similar tools
  • opnr — launches the browser when ndjson criteria is met
  • wtch — small livereload utility for rapid prototyping
  • rm-modules — Recursively remove all node_modules directories within the chosen root directory
  • wsnc — websocket netcat
  • rtcat — webrtc netcat
  • urit — RFC 6570 uri templates
  • fsm-event — stateful finite state machine
  • publish-release — Create GitHub releases with assets
  • depenency-check — Assert deps
  • psy — process monitor command
  • simple-index-html — a simple HTML index through stream
  • inject-lr-script — inject live reload into HTML content
  • husky — npm git-hooks



  • browserify — browser-side require() the node.js way
  • webworkify — launch a web worker that can require() in the browser with browserify
  • errorify — Browserify plugin to write failed build error messages to the output file
  • watchify — watch mode for browserify builds
  • envify — Selectively replace Node-style environment variables with plain strings
  • uglifyify — A browserify transform which minifies your code using UglifyJS2
  • exorcist — Externalizes the source map found inside a stream to an external file
  • disc — Visualise the module tree of browserify project bundles and track down bloat
  • factor-bundle — factor browser-pack bundles into common shared bundles
  • brfs — browserify fs.readFileSync() static asset inliner
  • unassertify - remove assert calls from a bundle
  • varify - convert all const assignments to var assignments
  • es6-templates - ES6 template strings compiled to ES5

Client-side MVC

Client-side components

  • tipp - Tool tips that just work
  • flaps - create android-like swipe-from-the-side menus
  • zip-input - ZIP input component for virtual-dom
  • spectrum - JavaScript Color picker
  • fs-explorer - file system explorer element


  • hyperx - tagged template string virtual dom builder
  • virtual-app - redux-like, unidirectional state management paired with virtual-dom
  • vdom-curry - Partially apply an idiomatic mercury component


Server MVC

  • brick-router — Modular router for serving static assets
  • brick-server — Create an http handler for brick-router
  • server-summary — Log basic server information after an http server start
  • on-finished — Execute a callback when a request closes, finishes, or errors
  • body — Body parsing
  • methodist — HTTP method matching
  • send-data — send data through response
  • corsify — CORS up a route handler
  • media-types — handle multiple media types
  • redirecter — Easy redirection
  • filed — Simplified file library
  • packify - packs up browserify apps by inlining all assets into one html file
  • tiny-lr - tiny livereload
  • qs - querystring parser with nesting support
  • format-stack - Formats a stack with colors
  • downgrade - Sets the user identity of the process


  • virtual-dom — A Virtual DOM and diffing algorithm
  • vdom-to-html — Turn virtual-dom nodes into HTML
  • virtual-html — Convert given HTML into Virtual DOM object
  • value-event — Create DOM event handlers that write to listeners
  • domify — Turn HTML into DOM elements x-browser
  • custom-element — Convenience wrapper for creating custom element prototypes
  • synthetic-dom-events — create DOM compliant custom events
  • main-loop — A rendering loop for diffable UIs
  • dom-wrap — Make dom elements easier to work with
  • base-element — An element authoring library for creating standalone and performant elements
  • get-form-data — Gets form and field data via form.elements
  • query-immediate-selector — Selector matching only for direct children of an element
  • zeroclipboard — copy text to the clipboard using an invisible Adobe Flash movie
  • domready — lets you know when the dom is ready
  • touches — simplified touch/mouse events for flick and swipe
  • insert — DOM insertion library
  • next-tick — Environment agnostic nextTick polyfill
  • dom-delegator — Decorate elements with delegated events
  • html-delegator — Decorate elements with delegated events
  • value-event — Create DOM event handlers that write to listeners
  • smooth-move - Smoothly scroll a scrollable element
  • screen-orientation - Get the current screen orientation
  • blur-active - Blur the active DOM element
  • mediasource - MediaSource API as a node.js Writable stream
  • phone - validate and format the phone number to E.164 standard


  • virtual-hyperscript-svg — create virtual-dom nodes for svg using hyperscript syntax
  • vivus — JavaScript library to make drawing animation on SVG
  • create-svg-size - Create an svg object with a given x/y width/height

Data manipulation

  • pbs — Streaming protocol buffers encoder/decoder
  • format-data — Format tabular data from an object stream to different standard formats
  • CSV-write-stream — A CSV encoder stream that produces properly escaped CSVs
  • CSV-parser — Streaming csv parser inspired by binary-csv that aims to be faster than everyone else
  • ndjson — streaming line delimited json parser + serializer
  • ssejson — Parse and Serialize object streams over SSE/EventSource
  • trumpet — parse and transform streaming html using css selectors
  • hyperstream — stream html into html at a css selector
  • html-template — build templates with ordinary html for node and browsers
  • torrent-stream — The low level streaming torrent engine that peerflix uses
  • tar-stream — tar-stream is a streaming tar parser and generator
  • gunzip-maybe - Transform stream that gunzips its input if it is gzipped
  • reconnect-core — Generic stream reconnection module
  • event source stream — EventSource implemented in node and the browser as a readable stream
  • response-stream - Pass http server response methods through to the next destination pipe
  • JSONStream - rawStream.pipe(JSONStream.parse()).pipe(streamOfObjects)


  • tape — tap-producing test harness for node and browsers
  • smokestack — Pipe your JavaScript into a browser, logging console output in Node
  • tap-closer — Close process on exit
  • covert — Code coverage command
  • coverify — Code coverage browserify transform
  • nyc - code coverage tool that works well with subprocesses
  • browser-test-helpers — A small set of generic test helpers for browser interaction tests
  • tap-status — force correct exit codes for TAP runners
  • faux-jax — Intercept and respond to requests in node + browser
  • proxyquire — Proxy node's require
  • proxyquirify — browserify v2 version of proxyquire
  • proxyquire-universal — proxyquire in node and the browser


  • signalhub — Simple signalling server that can be used to coordinate handshaking with webrtc
  • bittorent-dht — Simple, robust, BitTorrent DHT implementation
  • webrtc-swarm — Create a swarm of p2p connections using webrtc and a signalhub
  • peer-wire-swarm — swarm implementation for bittorrent
  • airswarm — Network swarm that automagically discovers other peers on the network using multicast dns
  • network-address - get the local network address of your machine
  • create-torrent - Create .torrent files
  • webtorrent - Streaming torrent client for the web

Neato functions

  • curry — simple curry module, with nothing too clever
  • clamp — Clamp a value between two other values
  • uniq — Removes duplicate items from an array in place
  • xtend — extend an object by appending all of the properties from each object in a list
  • clone — Deep cloning of objects, arrays, etc.
  • map-limit — async.mapLimit's functionality available as a standalone npm module
  • to-factory — Convert ES6 classes into factory functions so they can be called with or without new
  • sprintf-js — JavaScript sprintf implementation
  • strftime — strftime for JavaScript
  • auto-daemon — automatically spawn implicit background services
  • error — Error handling utilities for node
  • fuzzysearch — Tiny and blazing-fast fuzzy search in JavaScript
  • mutexify — Bike shed mutex lock implementation
  • deep-equal — Node's assert.deepEqual() algorithm as a standalone module
  • deep-merge — Deep merge objects with custom merging logic
  • array-union — Create an array of unique values, in order, from the input arrays
  • traverse — traverse and transform objects by visiting every node on a recursive walk
  • resolve — Implements the node.js require.resolve() algorithm
  • has — shortcut
  • function-bind — implementation of Function.prototype.bind
  • array-find - Return the first array element which satisfies a testing function
  • throttle - Throttle a function call


  • readdirp — Recursive version of fs.readdir with streaming api
  • rimraf — A rm -rf util for nodejs
  • chmodr - Like chmod -R in node
  • mkdirp - Recursively mkdir, like mkdir -p, but in node.js
  • findup - Walk up ancestor's dirs up to root
  • graceful-fs - fs with incremental backoff on EMFILE
  • stat-mode - Offers convenient getters and setters for the stat mode
  • touch - touch(1) for node


  • bl — buffer List: collect buffers and access with a standard readable Buffer interface, streamable too!
  • duplexify — Turn a writeable and readable stream into a streams2 duplex stream
  • concat-stream — writable stream that concatenates strings or data and calls a callback with the result
  • from2 — Convenience wrapper for ReadableStream, with an API lifted from "from" and "through2"
  • from2-array — Create a from2 stream based on an array of source values
  • from2-string — Create a stream from a string. Sugary wrapper around from2
  • through2 — Tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise
  • pump — pipe streams together and close all of them if one of them closes
  • pumpify — Combine an array of streams into a single duplex stream using pump and duplexify
  • debug-stream — use the debug module on a stream
  • stream-iterate — Iterate through the values of a stream
  • multiplex-rpc — rpc with multiplexed duplex streams
  • split2 — Split Streams2 style
  • mississippi — a collection of useful stream utility modules
  • cache-stream - caching stream for Node.js streams 2 api
  • multistream - A stream that emits multiple other streams one after another
  • parallel-multi-stream - Parallel version of multistream
  • end-of-stream - Execute a callback when a stream ends, finishes or errors
  • stdout-stream - Non-blocking stdout stream
  • size-stream - Count the size of a stream in bytes
  • progress-stream - Read the progress of a stream
  • peek-stream - Transform stream that lets you peek the first line before deciding how to parse it
  • query-schema - stream filtering with uri safe query syntax to json schema

Event emitters


  • minimist — parse argument options
  • cliclopts — CLI options helper and usage printer
  • subcommand — Create CLI tools with subcommands
  • subarg-replace — regex replace on subarg list
  • string-editor — Edit a string using $EDITOR from within your node app
  • subarg — parse arguments with recursive contexts
  • cli-md — Markdown for your Terminal
  • shell-quote — quote and parse shell commands
  • rc — The non-configurable configuration loader for lazy people
  • inquirer — A collection of common interactive command line user interfaces
  • notify-error - send an error notification
  • clear - Clear the terminal screen if possible
  • ansi - Advanced ANSI formatting tool for Node.js
  • single-line-log - output one line
  • application-config - Store your applications config where the operating system wants you to


  • content-addressable-blob-store — streamable content addressable blob object store
  • batchdb — leveldb and disk storage for queued batch jobs
  • forkdb — forking content-addressed append-only historical key/value blob store over leveldb
  • level-browserify — convenience package bundling LevelUP & LevelDOWN or Level.js
  • mynosql — Arbitary WHERE queries for leveldb
  • level-ttl — Add a 'ttl' (time-to-live) option to LevelUP for put() and batch()
  • memdb — LevelUp + MemDown
  • abstract-blob-store — A test suite and interface for blob stores
  • lev — The complete REPL & CLI for managing LevelDB instances
  • bytewise — Binary serialization of arbitrarily complex structures that sort bytewise
  • level-secondary — Secondary indexes for leveldb
  • level-tmp — Create a temporary sublevel that is guaranteed to be empty
  • level-logs — Store multiple append only logs in leveldb
  • sublevel-prefixer — Prefix a key with a sublevel prefix
  • map-reduce async map-reduce functions for nodejs
  • level-indexer — generic property indexer for leveldb
  • level-livefeed — Live query a range in leveldb
  • sqs — A message queue using Amazon Simple Queue Service
  • hyperemitter — Horizontally Scalable EventEmitter powered by a Merkle DAG
  • atomic-queue — a crash friendly queue that persists queue state and can restart
  • superlevel — minimalist CLI utility for leveldb databases
  • level-defaults - Change the defaults settings on a LevelUp instance by returning a new LevelUp instance that uses the same leveldown but different options
  • level-events - Get an event every time something is written / read / deleted using LevelUp

Data structures

  • merkle-dag — Merkle DAG on top of LevelDB
  • hyperlog — Merkle DAG that replicates based on scuttlebutt logs and causal linking
  • hyperlog-index — transactional indexes for hyperlog
  • functional-red-black-tree — A purely functional red-black tree data structure
  • seamless-immutable — immutable backwards compat JS structures
  • flat-tree — A series of functions to map a binary tree to a list
  • observ — An observable value representation
  • observ-struct — An object with observable key value pairs
  • observ-array — An array containing observable values
  • observ-node-array — Populate an observable array from node descriptors
  • plucker — Pluck nested properties from an object.
  • flat — Flatten/unflatten nested Javascript objects
  • fifo — FIFO queue in Javascript
  • bloomrun - A js pattern matcher based on bloom filters


  • electron-prebuilt — install electron prebuilts using npm
  • electron-packager — package and distribute your electron app in OS executables (.app) via JS or CLI
  • titlebar — Emulate OS X window title bar
  • electron-rebuild — build native modules against the current Electron version
  • electron-cookies — add support for cookies in Electron
  • electron-gh-releases — Electron auto-update by releasing on Github
  • silence-chromium — Filter out spurious log messages for chromium/electron stderr
  • npm-execspawn — Spawn locally installed npm dependencies with cross platform env and arguments
  • link-bin — Make bin scripts work local npm dependencies
  • npm-start — 'npm start' written in bash that propagates kill to subprocesses
  • node-auto-launch — Launch node-webkit apps at login (mac & windows)
  • 0x - flame graph profiling with a single command
  • fastbench - simple benchmark


  • node-gyp — Node.js native addon build tool
  • node-bindings — Helper module for loading your native module's .node file
  • nan — Native Abstractions for Node.js


  • bleno — A node.js module for implementing BLE (Bluetooth low energy) peripherals
  • noble — A node.js BLE (Bluetooth low energy) central module
  • chromecasts — Query your local network for Chromecasts and have them play media
  • mosca — MQTT broker as a module

Package log

Instead of adding packages by hand I'm adding useful JS packages through a CLI; that way it's easier to search back in history and append new packages to the list.

results matching ""

    No results matching ""