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

expressful

v0.4.1

Published

> Essential web technologies in one package.

Downloads

39

Readme

Expressful

Essential web technologies in one package.

Currently in development

$ npm install expressful --save

Quick start

Expressful sets up a Node.js web server for the rest of us.

// app.js
const app = require('expressful')({
  root: __dirname
});
app.serveContent();
app.start();

Expressful is a tiny wrapper around the most popular Node.js web framework Express.js, loved by many.

Read the total beginner guide on how to run an Expressful app

Is Expressful right for me?

You want to make branding websites. So you learn HTML, CSS, and maybe JavaScript.

Soon you get overwhelmed by technologies such as Node.js, Express.js, build tools such as gulp) and CSS processors such as CSS Next to name a few.

Although essential, these tools have steep learning curves.

Expressful brings you these essential web technologies in one package.

Expressful gets out of your way. You focus on content, design and publishing your website.

Websites that you should build with Expressful

  • App landing pages
  • Small business websites
  • Portfolio's

Goals of Expressful

  • Remove setup time
  • Easy for beginners
  • Focus on content and design
  • Focus on HTML and CSS
  • Favors convention over configuration
  • Keep your package.json dependencies list lean

A simple project structure

Expressful is focused on content, HTML and CSS. Most of your projects will look somewhat like this:

.
|-- /node_modules/        # contains dependencies such as expressful
|-- /public/              # contains assets such as images and fonts
|-- /css/                 # contains css files
|-- /content              # contains json and cson content files
|   |-- /about.json     
|   └-- /index.cson
|-- /views/               # contains html files
|   |-- /about.html
|   └-- /index.html
|-- /app.js               # starting point of your node app
└-- /package.json         # information about your app and dependencies

Content directory

Expressful is based on a Content First design approach. Start by putting your text in cson or json files in your content directory.

Each file represents a page on your actual website.

Basic content routing example

Basic Routes infographic

Nunjucks templating

Expressful uses the nunjucks templating engine by default.

It's setup with Remarkable and highlight.js which makes it easy to write content in Markdown

Expressful sets up Express.js with useful defaults

The Expressful app is just an Express.js app with useful defaults. Calling expressful() sets up a express app for you with those useful defaults.

const expressful = require('expressful');
const app = expressful();
  1. sets up static directory for /public
  2. mutes favicon request by default
  3. sets up nunjucks templating (with Remarkable and highlight.js)
  4. sets up the following modules
  • body-parser
  • compression
  • errorhandler
  • morgan
  • serve-favicon
  • errorhandler

Note: multer, cookie-parser and express-session are not in here

API Reference

Expressful is a tiny wrapper around Express.js. It offers some extra functions that make it even easier to work with:

Configuration

Expressful is focused on convention over configuration. However, there is some configuration available:

const expressful = require('expressful');

// Values are defaults
const app = expressful({
  root: path.dirname(require.main.filename), // The `root` of your project
  publicDirectory: 'public', // 'public' is the default static folder
  viewsDirectory: 'views', // don't change this for no reason, used for testing mainly
  faviconPath: 'public/favicon.ico', // path to favicon
  muteFavicon: true, // make it easy to get started without a favicon
  useNunjucks: true, // nunjucks is the default templating engine
  staticMaxAge: '30 days' // Caching time for static resources
});

Setting the root is advised

// This would work in most cases, it works on Heroku for example
const app = require('expressful')();

// This will work anywhere
const app = require('expressful')({
  root: __dirname
});

Author & License

Created by Jeroen Ransijn under the MIT license.