npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

conveyance

v0.5.1

Published

Enhanced Node.js Express Server Framework

Readme

conveyance

Node.js Express Server Framework

The goal here is to provide a ready-built, extensible server framework based on Express. It has built-in support for logging, error handling, static resources, and custom registered routes.

Server Start Up

See the "simple" example for instantiation of conveyance. When you start up the server, if you have a resources/ directory in the working directory, and you have not specified the "noResourceCopy" override parameter in your custom server config, THEN any files in the conveyance module under resources will be (non-destructively) copied into your own resources directory for serving. You can force resource copying (destructively) using the "forceResourceCopy" option in your server config.

Customization

The local working directory when you start the server is considered as the user's "base" directory. That directory is where you put your own resources, overrides, etc.

Custom Configuration

Custom configurations are .json files located in a directory (path) under the working directory. The currently supported configurations are: config/server/.json - merged overrides/additions (loaded in alpha-sort order) to the built-in conveyace server config. config/static/.json - merged overrides/additions (loaded in alpha-sort order) to the build-in static resource map

Custom Resources

Just create a resources directory in your working directory. The following sub-directories are supported (see the config/static/base.json file in conveyance source for the default configuration):

  • "/js" url path maps to "resources/js", normally used for browser application level JS files
  • "/lib" url path maps to "resources/lib", normally used for browser library level JS files
  • "/css" url path maps to "resources/css", used for style sheets
  • "/html" url path maps to "resources/html", used for static HTML files
  • "/img" url path maps to "resources/img", used for photos/images
  • "/media" url path maps to "resources/media", used for other media and documents

Note that these are fairly universal conventions and will currently always be loaded as static resource routes. If you add additional directories, you will need to create a path mapping in your own JSON file(s) in "config/static/" rooted in the server startup working directory.

Favicon

The favicon.ico support is provided using the "serve-favicon" NPM module. To set up your own, override the server config for "favicon". Set it to false if you want to disable favicon.ico support.

Routers

Your application activities should be registered as "routers" using the latest Express.Router() object. Once you have a router defined, register it with conveyance (conveyance.routers.register(path, router)) and it should work. Best practice is that REST endpoints should be added as routers with proper path specification.

Version 0.x Caveats

The framework is version 0.x because the designs for things may change. We will be reworking error handlers, router interface, configuration interface, and providing examples of middleware installation. We will also be adding additional functionality.

Target version 1.0.x will bear the final API contract for version 1.0. There is NO OFFICIAL API CONTRACT for v.0.x

See "examples" for current API examples.