Download (2.2kb)
Github

RabianJS.php

Rabian is still under active development - At the current rate it should see version 1.0.0 release around mid/late 2024.

Documentation

Quick Jump:

1.0 Introduction

RabianJS.php is a modular lightweight cosmetic library and bootloader for CSS and Javascript libraries. I made it so that I could package many useful modules in an organized and efficient way. It has the ability to dynamically alter the content of the page based on its directory structure and files. It can be used to make custom profiles that load compressed versions of your tool suites, for rapid deployment to new servers. It is as simple as dragging all your Javascript, css, less and sass into a folder.

It will work with CMS systems like Drupal and Wordpress or anything with PHP (allthough its module system can be used without PHP). It has cosmetic features for various html elements and a very unique navigation and waypoint system that is ideal for use in long documentation pages. Its modular structure means you only load the parts you want.

Using rabian means you can develop modules on a live site with stealth mode enabled. The html is also compressed on delivery if you use the compression includes (more on that later).

2.0 Features

The various navigation and cosmetic features include javascript parallax blocks (that work on mobile), loading effects, GDRP cookie consent boxes and a floating menu bar. It comes pre loaded with the smooth scroll polyfill. You can build a profile by filling the preload and postload folders with your entire toolsuite, for example if you wanted jquery and bootstrap in a project, you can just drop them in the preload or postload folder. Rabian also supports LESS and SASS, it will autocompile them into the cache folder with the rest of your css and automatically place them into the page. Once the cache is created JShrink is applied to compress them before delivery. It comes with preconfigured CORS and a web worker , so you can build with security and scaling in mind from step one.


You can include the script and use any of the features on their own. Rabian only loads the modules you call from the page. This allows the module to be super light weight and lets it plug into CMS templates easily without the need to install it as a module.

Back-end

  • Single user login system.
  • Control panel with basic cache operations and system information (installed modules, visitor info, phpinfo, system file checker).
  • Step by step first time setup.
  • Single click full export of project files, which rolls up the entire local rabian system (minus passwords, logs, settings and other sensitive files) in preperation to commit to the main GIT project.
  • Single click full backup including sensitive content. Keep your project safe or transport it easily to a different server by simply downloading the backup, then reuploading to the new server via FTP.
  • Included captcha and combination passcode with a whitelist system, and human checks to prevent unauthorized login attempts.
  • Aggregation/transpilation/compression of JS,CSS,LESS,SASS.
  • PHP based templating system.
  • No database.
  • Working CORS set based on nonce values (security).
  • Many different loading systems for modules.
  • NodeJS script that handles transpilation.
  • Works in http, https and on localhost.
  • Works with HTTP2 and Brotli compression.
  • Huge settings file that lets you strip the project down to the tools you want.

Front-end

  • Preconfigured cache worker that is installed on the visitors browser and handles requests.
  • Partytown integration which allows scripts/modules/magic packs to be run on a seperate thread, this improves loading and performance massively if implemented.
  • Transpiler included, transpiles your js to ECMAScript 2015, for good compatability with old browsers.
  • Console logger to see the full load operation. (check the console)
  • Many ways to finely control how modules load for lightning fast page loads.
  • Full documentation that ships with the package.
  • Ability to test modules on a live site with stealth mode.
  • Simple admin overlay with performance monitor.
  • Comes bundled with some of my interesting front end projects.

Addon modules/projects

CSS packs

Rabian included addons

4.0 Installation

Installing Rabian is fairly easy in most cases. If the requirements are met, simply download the file from the top of this page and upload it onto your server in the root of the project, so it sits at https://whateveryoursiteis.com/rabian. If you would prefer to do it from the command line, you can do the following, note: this will not work until release of the project.

sudo wget -c https://rabian.io/not_available_yet.tar && tar xvf not_available_yet.tar

Then you need to run the following to give php write access to the rabian folder.

sudo chown -R www-data rabian

After installing, you should navigate to https://your-website.tld/rabian which will take you through first time setup, and check to see if requirements are met. This is a multi step procedure, that will require you to change your passcodes from the default.

Running this startup procedure, will generate a clear-cache key and a server private key, in the folder server_key. For added safety you can move the server_key file out of the web directory, as long as you update the location of the server_key file, in components.php which resides in rabian/core/

→ 4.1 Configuration

The first thing to do is navigate to /rabian/server_key/password.php and edit the file here:

// Set the pass codes it is recommended to set at least 3 in whichever pattern you like. You can use a-z,0-9.
$passcode_1 = '11';
$passcode_2 = '22';
$passcode_3 = '';
$passcode_4 = '';
$passcode_5 = '';
$passcode_6 = '';
$passcode_7 = '';
$passcode_8 = '';
$passcode_9 = '33';



If you would would like to change the location of the server_key file to somewhere outside of the web directory, you need to move the file, then locate /rabian/core/components.php and change this line to the new location:

            $secret_location = "location you put the folder";
 

→ 4.2 Including in the page (basic)

Rabian has two inclusion modes: Javascript only (legacy mode) and PHP mode that uses pseudo-templates. These are preconfigured per page packs of includes. The pseudo-templates allow for stealth mode (which lets you develop hidden modules on a live site) and use gatherer.php to automatically add every possible combination of include tag for the entire file system. As gatherer is an expensive operation, it generates a cache file to include in the pseudo-template when executed from the control panel or the admin overlay. After adding a module, you can either manually include it using the psudo-template, or use the version from gatherer after a rebuild. First though, I will show you how to include in legacy mode.