node package manager

beyond

BeyondJS

Easy development of integrated state-of-the-art technologies, with boosted performance. BeyondJS is a framework for building scalable, modular, single page web applications. BeyondJS integrates out-of-the-box, react, mustache, require.js, polymer, less, socket.io, and more.

Build Status npm version bitHound Score Dependency Status Dev-Dependency Status

One Framework - Multiple technologies

BeyondJS is not a framework that does everything by itself, it is a framework that integrates powerful existing technologies to create powerful applications. BeyondJS integrates out-of-the-box, react, mustache, require.js, polymer, less, socket.io.

BeyondJS is evolving fast

BeyondJS is evolving fast and it is actually open for evaluation. If after evaluating BeyondJS you think that it can help you to build faster and better software, you can contact us, as we strongly believe that with our support you can take advantage now on BeyondJS. Otherwise, please stay tuned on the progress of the development of BeyondJS or contribute with us with the development and feedback.

Mobile and Desktop

BeyondJS is a JavaScript framework for building scalable and modular, single page web application that can be easily packaged and deployed on web and mobile.

BeyondJS solves:

  • Module bundler in a modular development environment. Modules encapsulate mixed resources (html, plain css, less, texts, js, react components, static resources as images and server-side code).
  • Single Page and load on demand ready and easy thanks to requireJS AMD technology. Create modules, pages, controls and libraries that are loaded only when required, optimizing the performance and response times. Polymer elements and react components are also loaded on demand.
  • Realtime ready. BeyondJS is based on websockets thanks to socket.io.
  • Server. With BeyondJS you do not require a server to develop, BeyondJS is a server. In development, BeyondJS compiles your modules on the fly.
  • Builder. BeyondJS compiles and prepares your modules to deploy your applications in your production environment. Modular programming means, among other things to be able to develop your client code and your server code together. Not as two different things. But, once we want to deploy to production, we want our static resources separated from the server side code, in a way that we can distribute our client side resources in flat servers, even better on a CDN infrastructure, and the server code in a datacenter with servers prepared to support the required processing load.
  • Offline ready. HTML5 Offline capabilities are great! And BeyondJS takes advantage on that. BeyondJS automatically creates the offline manifest. When your application is navigated on the web, it will load its resources on demand, but in parallel, the entire application will be downloaded in background. Once the application is downloaded, all its resources will be loaded locally.
  • Multilanguage support. Applications and libraries can be configured to support multiple languages. Applications and libraries will automatically be compiled in different deliverables, one per configured language.
  • Client side rendering. BeyondJS supports out-of-the-box, mustache templating, react and polymer to help you build incredible user interfaces very quickly with manteinable code.
  • Polymer and React working together: These two incredible technologies can work together and are ready to be used very easily with no extra setup, and ready to be compiled to production environments without to think on grunt, or webpack.
  • Create incredible Apps thanks to Polymer. Polymer has a set of beautiful web components that will help you create cool interfaces very fast.
  • Phonegap ready: BeyondJS was designed to develop applications to be compiled both on phonegap, and for the web.
  • Libraries & Plugins supported: BeyondJS can serve multiple applications and multiples libraries. Applications can import the libraries that they use.

Install BeyondJS

The way to get started is by installing BeyondJS with node and npm. Install node and npm if not already on your machine.

npm install -g beyond

The Concept

In BeyondJS you develop your code by defining modules. Modules are encapsulated code of mixed resources and are loaded on demand. You can build modules with plain code or render pages and components. Both pages and components can render polymer and/or react components.

Structuring your Applications in Modules

A Basic Module

Modules in BeyondJS are located in directories. Modules are referenced by their paths relative to the root of your application.

The following module will be navigated in the url /welcome and will append a simple div with the text "Welcome to my first module". While developing with BeyondJS, you do not have to worry about packing your resources, BeyondJS will dynamically load your welcome module when the /welcome url is navigated, BeyondJS will pack your module on demand.

module.json

{
  "page": "/welcome",
  "code": {
    "html": {
      "files": ["welcome.html"]
    },
    "txt": {
     "files": ["texts.json"]
    }
    "js": {
      "files": ["my-module.js"]
    }
  }
}

welcome.html

<div class="welcome">
   <div class="message">{{message}}</div>
</div>

texts.json As you can see below, the texts on this module are specified in english. You can add other languages very easily.

{
  "en": {
    "message": "Welcome to my first module"
  }
}

my-module.js

function Page() {
    "use strict";
 
    var $container;
 
    this.show = function (state, done) {
 
        if (!$container) {
            var html = module.render('welcome', module.texts.message);
            $container = $('<div />').html(html);
            $('body').html($container);
        }
 
        if (done) done();
 
    };
 
    this.hide = function () {
        $container.hide();
    };
 
}

Running BeyondJS

Just run beyond in a terminal console.

beyond

How to Get Started

You can download and explore our Get Started repository.

More detailed information here.

Contribute

The main purpose of this repository is to continue evolving the BeyondJS core, making it faster and easier to use. If you're interested in helping with that, then keep reading. If you're not interested in helping right now that's ok too. :) Any feedback you have about using BeyondJS would be greatly appreciated.

Testing Your Copy of BeyondJS

The process to test BeyondJS is built entirely on top of node.js, and libraries that you are probably already familiar with.

Test

Once you have the repository cloned, testing a copy of BeyondJS is really easy.

# mocha is needed for the test; you might have this installed already 
npm install -g mocha
mocha test/**

License

BeyondJS MIT © Socites.