Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


1.0.12 • Public • Published

Pillar VII

Pillar7 is a minimal / hackable node.js web server built around the idea that making content available on the web presented in a reasonable way should not require:

  • php, mod_php, apache, nginx, http.conf, mysql, mysqlrc, .httpacess
  • auth (basic or otherwise), administration, accounts
  • themes, plugins, Wordpress, postgress, openssl
  • rebuilding, redeployment, frameworks, routes
  • {{less}}, sass, jade, coffeescript
  • ip logs, SEO, google analytics

Pillar7 serves documents from a directory called 'content.' It tries to identify and reasonably present contents of files of types pdf, plaintext, markdown, html, and standard image types.

'content/' could point to a directory hosted by Dropbox and anyone with write access to this directory may post content. Anyone with the URL of the server may view content. Dropbox is not required; any tool or service which allows one to synchronize a local directory to a remote one running Pillar should work.


% npm install pillar7
% cp -r ~/node_modules/pillar7 /where/I/want/to/run/pillar7.


% ssh
% cd /where/I/run/pillar/server
% node (or npm start)


The server uses to propogate name file update events back to the client browser so if you got you synchronization working between local content/ and remote content/. you should see the updated/new file move to the top of the page.

Use Cases

  • FAQ Presenting
  • html page development / prototyping. Just put you dependend css/js in lib and use relative addressing

Descriptive File Names

Long descriptive file names are modified to something which looks like a title or one line summary by replacing dashes, underscores and periods in the file name with spaces in the link text. so ...


is displayed as ...

 http 2 request for comments

Release Notes V 1.0.10

Article cache is now an ES6 map instead of an array.

Uses inotify.js instead of to monitor changes to the content directory and maintain article cache. This allows us to distinguish between file modification and delete events without kicking off a rescan of the entire directory. Unfortunately inotify.js is linux specific Project is now linux specific on the backend as a result. :(

Release Notes V 1.0.5

Upgraded from node.js V 0.12.7 to V 4.1.1 at the end of v1.0.5. Going forward I plan to allow myself the luxury of using ES6 specific enhancements.


This work is very loosely derived from Daniel Nill's wonderfully minimal node-and-socket-example (
Thank you Daniel for helping me get past rough spots in my first project.

I was also inspired by Andrew Sliwinski's Simple (, an incredibly useful node remix of python's SimpleHTTPServer.

Thank you Camilo Aguilar for a directory monitoring solution which works! Node core team hint hint please consider Camilo implementation for the workings of on linux.

Thank you Darren Overby for the concept and Nomad a What Coworking / Hacker Space for the coffee and big monitors.


npm i pillar7

Downloadsweekly downloads









last publish


  • avatar