BetaJS is a collection of JavaScript modules for building web apps.


Why use BetaJS

Full Browser Support

Works on Desktop, Mobile, Cordova and NodeJS. The modularized architecture allows you to use common modules on both client and server, and specialized modules in the specific environments.

Open-Source Platform

BetaJS is fully open-sourced and comes with the industry-standard Apache-2.0 license. All our code is maintained openly on GitHub. Pull requests more than welcome.

Simple Interface

BetaJS has been designed with simplicity and maximum customizability in mind. It does not impose a particular style of writing JS and works well in combination with other libraries.

How BetaJS Works


The Scoped system allows you to handle multiple libraries with separate namespaces and scopes. It allows libraries to access external dependencies with different names and even overwrite the namespaces a library attaches to, so you can include two different versions of the same library without clashing their namespaces.

Scoped.require(['ns1:dependency1', 'ns2:dependency2', 'ns3:dependency3'], function (D1, D2, D3) {
    // Execute once D1, D2, D3 are resolved.

Scoped.define('ns:module', ['ns1:dependency1', 'ns2:dependency2', 'ns3:dependency3'], function (D1, D2, D3) {
    // Execute once D1, D2, D3 are resolved.
    return {
        // Return ns:module definition.

Scoped.extend('ns:module', ['ns1:dependency1', 'ns2:dependency2', 'ns3:dependency3'], function (D1, D2, D3) {
    // Execute once D1, D2, D3 are resolved.
    return {
        // Return ns:module extension.


The data module handles abstract data stores, operating on both client and server. It supports standard RESTful architecture and third-party server systems providing a RESTful API.

store.insert(instance).success(function (data) {
   // Instance was inserted, and the updated data of instance is data (including the id)
}).error(function (error) {
   // Could not insert instance

store.query(query, constraints).success(function (iterator) {
   // Store was succesfully queried; the query result is an iterator over matched instances.
}).error(function (error) {
   // Could not execute query


Dynamics is a dynamic DOM templating engine. It encapsulates the JS controllers in classes and automatically updates its templates. It is built with scalability and flexibility in mind, and plays hand in hand with all other BetaJS modules, including Data.


This is a JavaScript media UI components framework that includes a multi-platform video player.

BetaJS Core Developers

Contributing Sponsor


How BetaJS Is Structured

betajs-scoped BetaJS-Scoped is a small module for scoped loading of modules and dependencies.
betajs BetaJS is a general-purpose JavaScript helper module. It contains a variety of helper functions and classes.
betajs-browser BetaJS-Browser is a client-side JavaScript framework for Browser-specific methods.
betajs-data BetaJS-Data is a general-purpose JavaScript framework for handling RESTful operations and ActiveRecord abstractions.
betajs-server BetaJS-Server is a server-side JavaScript framework extension for BetaJS.
betajs-dynamics BetaJS-Dynamics is a dynamic DOM templating engine.
betajs-ui BetaJS-UI is a library for enabling gestures and interactions such as drag and drop.
betajs-flash BetaJS-Flash is a Flash-JavaScript bridging framework
betajs-media BetaJS-Media is a JavaScript media framework
betajs-media-components BetaJS-Media-Components is a JavaScript media UI components framework
betajs-debug BetaJS-Debug is a library for debugging BetaJS-based applications.
grunt-betajs-templates Build BetaJS templates.
grunt-betajs-docs-compile Build BetaJS documentations based on JSDOC.
betajs-codemirror BetaJS-Codemirror is a Codemirror Plugin for the BetaJS Framework.
betajs-richeditor BetaJS-Richeditor is a rich editor plugin based on content editable using the BetaJS Framework.
betajs-chartjs BetaJS-ChartJS is a ChartJS Plugin for the BetaJS Framework.
betajs-shims This repository includes shims for ECMA Script that are not included in the official shims.
betajs-workers BetaJS-Workers is a light-weight library for accessing web workers uniformly and conveniently.
mock-ajax-server BetaJS Mock Ajax Server for Testing
mock-file-server BetaJS Mock File Server for Testing
betajs-compile BetaJS-Compile is a helper repository for building betajs modules.


  Ziggeo     Browserstack     Jet Brains