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

frontfax

v0.2.1

Published

Development environment for frontend developers at Fairfax Media.

Readme

Frontfax

Sets up a development environment for frontend developers that can't access the source code. Recently, at the last couple of places that I've been working, it's been somewhat impossible to access the source code of the working project, and therefore, I've been downloading the source via the web, working on it and then posting it back to backend developers to insert in to the project. This is somewhat annoying, so I've developed Frontfax.

Installation

  1. Install node and npm
  2. Install Frontfax [sudo] npm i -g frontfax (TODO: It hasn't been released to NPM yet.
  3. Create a project frontfax project:new myproject
  4. Install the dependencies cd myproject && npm i
  5. Start the server npm start
  6. Then view the server

Your Workspace

- myproject
	- assets
		- css
		- images
		- js
		- less
	- static

This is the process in which frontfax handles each HTTP request:

  1. Receives a request (for example /images/logo.png).
  2. Tries to find it in your workspace (assets/images/logo.png). If found the file is returned and the process stops here.
  3. Proxies the request to the configured proxy server and returns the result.

URL Configuration

The images, js, css URLs are can configured, but these files will always be accessed from you assets directory.

The static directory is the last place the server looks before proxying the request. This is good for HTML files. You do not need to configure the URL for this as it will consider the root to be accessible from the static directory.

To change the URLs open the config/default.json file and edit the assets.image|css|js urls.

LESS

While you're working on any less files they will automatically be converted in to css and placed in the css directory.

The advantages are of writing you CSS as LESS are:

  • Pre-processing functionality
  • Syntax is the same as CSS, so even if you don't want to use LESS's functionality you can just write plain CSS.
  • You can compile a selection of files in to one.

When writing your less files, it is recommended to have one "main" file that includes all the requirements. This means that only one file needs to be uploaded to the production server after development.

Here's an example. Try to split your work in to many easy to read files.

/* assets/header.less */

.header {
	.nav {
		/* nav styles */
	}

	.logo {
		/* logo styles */
	}
}
/* assets/article.less */

.article {
	.picture {
		/* picture styles */
	}

	.teaser {
		/* teaser styles */
	}
}
/* assets/main.less */

@import 'header';
@import 'article';

Now you can point to one CSS file (/my/configured/css/path/main.css) and have all your CSS returned:

/* build/main.css */

.header .nav {
	/* nav styles */
}
.header .logo {
	/* logo styles */
}
.article .picture {
	/* picture styles */
}
.article .teaser {
	/* teaser styles */
}

JS Combine

While you're working on any js files they will automatically be combined into assets/js/main.js.

Bugs

Report all bugs in the Bitucket issue list.