BladeRunnerJS logo

Divide & conquer complex web apps

BladeRunnerJS (BRJS) is an open source development toolkit and framework for modular construction of large single-page HTML5 apps. It consists of a set of conventions, supporting tools and micro-libraries that make it easier for teams to develop, test, deploy and maintain complex JavaScript apps.

Get started

Blades

Blades

A Blade is a module that encapsulates all the required resources – JavaScript, HTML, CSS, XML, images, etc – to implement a high level feature within an app.

For example, a blade might implement a map UI, a chat window, a charting module or an alerting mechanism. A blade usually corresponds to a particular area of the display.

Workbenches

Workbenches

Workbenches allow Blades to be developed, debugged and run independently of the application.

Workbench Tools allow you to interact with the Blade through stubbed services and the EventHub. For example, you can view your Blade in different states by sending it mock events via a mock events Workbench Tool.

Clean Code

Focus on Features

With BRJS the first line of code you write is feature code. No need to setup and configure a development environment, build processes or spend time evaluating and integrating libraries your app will use.

BRJS comes with a proven set of development tools and micro libraries to let you focus on writing application functionality. Of course, if you want to modify the setup, you can.

Take a look at the Getting Started Guide
or

More Features & Concepts

Scaffolding

Build out the structure of your app quickly and efficiently using the special BRJS scaffolding feature. Create Apps, Blades, BladeSets, Aspects, Classes, Interfaces, Tests and more via the CLI or, even more easily via the web dashboard.

Dependency Analysis

The smart BRJS bundling system analyzes your code down to the last colon and ensures that only the JavaScript files that are used within your application are bundled during the build and deployment steps. Saves you time, and makes your build even faster!

Scale to Multiple Teams

One of the main benefits of using BRJS is that is ensures your application will scale to multiple teams. By seperating functionality into Blades and libraries, and by using the EventHub and Services, it massively reduces the likelihood of feature incompatibility and code conflicts.

Efficient UI Testing

When developing complex UIs you can end up with several hundred detailed behavioural tests. By using MVVM within a BRJS application you can test the UI via the "view model", without having to touch the DOM. Hundreds of UI tests can be executed in minutes.

Web Dashboard

Not everybody wants to spend all their time on the command line. So, BRJS ships with a web dashboard which offers most of the functionality that the CLI offers via a simple web user interface that is super-efficient and most importantly easy for everyone to use.

Plugins

BRJS gives you everything you need out of the box. However, it's great to be able to extend & customise functionality to meet different needs. Plugins provide a framework to extend the BRJS toolkit with your own commands, file transforms, bundling and minimization strategies & more.

Get involved with on

Documentation

Find out more about BRJS in the work in progress documentation.

Explore the concepts:

Discover how the BRJS coding conventions help teams work in a scalable way:

Or, find out how to extend BRJS by writing your own plugins:

And checkout the Roadmap to see what's coming up.

Still got some questions, have a look at the FAQ.

Explore

Get Started

Create your BRJS app:

$ ./brjs create-app brjs-todo brjstodo

Placeholder jsdoc generated for app 'brjs-todo'.
Successfully created new app 'brjs-todo' /brjs-apps/brjs-todo
Successfully deployed 'brjs-todo' app

Start the development server:

$ ./brjs serve
BladeRunnerJS server starting
Application server started on port 7070

BladerunnerJS server is now running and can be accessed at http://localhost:7070/
Press Ctrl + C to stop the server

Start developing features.

Go