A basic viperHTML + hyperHTML setup
Switch branches/tags
Nothing to show
Clone or download
Latest commit 2321c39 Jul 24, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
public more evident link to folders Jul 23, 2017
viper handling sw.js even if split + hash and assets Jul 23, 2017
.babelrc first commit Jun 28, 2017
.gitignore npm run watch Jun 30, 2017
README.md visible badges Jul 24, 2017
package.json 0.2.1 Jul 24, 2017
webpack.config.js cleaned up Jul 23, 2017
yarn.lock visible badges Jul 24, 2017




A basic viperHTML + hyperHTML setup based on Webpack and with native subclassing capabilities, including Custom Elements.

How To Start

npm install to bring all dependencies in, then npm run build whenever you change assets or simply npm run watch to automatically update all new files.

To test the example page, just run the usual npm start.

Folders Structure

  • cdn contains all optimized on-demand static assets. It's automatically managed, nothing to do there.
  • public is the actual public site content. It contains few static assets but also JS bundles. You can add CSS bundles too (coming soon).
  • viper is where the actual app code is defined, it has at least these subfolders: client, for the browser related client-side code, server, for the HTTP based back-end service, and view, for the external files used either on the client, on the server, or in both, to generate the whole page, or partial content.

You can surf each folder inside ./viper one to know more about each role.

folders structure


  • can I use express or others? Sure you can, this is just a basic setup.
  • how to cleanup tinyCDN cached content? You can simply rm -rf cdn/* or npm run purge before re-deploying. tinyCDN gives for granted if a file name is the same, the content must be too. It really works in that sense.
  • how come the example page shows with hiccups? It's a demonstration that viperHTML can also render partial asynchronous chunks, no matter in which order these are resolved. You can remove the array of promises from the body info of the server model and re-test anything you'd like to