Most Powerful Open Source ERP

CribJS Home

  • Last Update:2020-05-20
  • Version:001
  • Language:en


CribJS is a small JavaScript library (currently part of ERP5's OfficeJS business template), that utilizes the browser serviceworker API and a text editor to allow users to configure the way of viewing a specific website that supports CribJS. Based on the principles of the free web and its origins of connecting raw pieces of information, a user should have the freedom to view content in whichever way he or she desires. CribJS will allow to do this by enabling to customize CribJS-supporting websites. CribJS was created by Cédric Le Ninivin at Nexedi and is part of their free software stack.

Why use CribJS?

Idealism - the web was and is about connecting and exchanging information through HTTP(S). Text Transfer. If one wants to stay close to these origins, viewing a web page with additional scripting and style enforcing a certain view on the actual content feels like a book's pages being reshuffled according to the publishers preference. Or a graph of information being moderated by an application deciding what is best for you to see. And what not. Form follows Function - but function likely wasn't meant to be a JavaScript function and server-side algorithm enforcing a layout aimed at maximizing profit generating parameters from page views to time on page.

Alas. Back to the basic and CribJS-supporting ("cribjable") websites providing content and their view of it separately while giving users the freedom to modify and edit the latter to their personal preference - be it for idealistic or at least aesthetic reasons.

Getting Started

Source Code

The source code can be found in the aforementioned officejs repository in the web page module.


  • Serviceworker API Support (Caniuse)
  • RenderJS - HTML5 component framework
  • jIO - JavaScript Input/Output

Installing CribJS

Follow the steps outlined in how to setup a website using CribJS for creating a static website which is fully editable in your browser and can save/fetch changes from an external storage of your choice (like webDav).

Latest Releases

CribJS is still in its infancy and has not yet reached a state warranting having a tag and release.


Tips and Tricks

  • To remove your modifications manually, use the chrome://serviceworker-internals


Automated test results are published on


Can I use CribJS on every website?

No. Only pages with the CribJS logo "monkeywrench" allow to switch a page into what is termed "dev mode" where you can edit and save source files. It also requires most of the rendering to be done on the browser, so server-side rendered HTML pages are therefore difficult to tweak aside from the visuals (changed via the provided CSS files).

Can I use CribJS on every browser?

No, because CribJS uses the serviceworker API, which is not available on all browsers (see caniuse Serviceworkers).

What's the purpose of CribJS then?

The web has evolved from it's original idea of linking pieces of information. Todays website add a lot of visual value add (or clutter) as well as a certain view on the content, which a viewer not necessarily should be forced to follow. With CribJS a viewer is free to tweak the design of a site and alter the way it is viewed to his liking. A theoretical freedom of course requiring a certain degree of programming know-how.


CribJS is Free Software, licensed under the terms of the GNU GPL v3 (or later). For details, please see Nexedi licensing.