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
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
The source code can be found in the aforementioned officejs repository in the
web page module.
- Serviceworker API Support (Caniuse)
- RenderJS - HTML5 component framework
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).
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
Automated test results are published on www.erp5.com.
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
CribJS is Free Software, licensed under the terms of the GNU GPL v3 (or later). For details, please see Nexedi licensing.