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.
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 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.
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.
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.
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!
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.
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.
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.
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.
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.
ExploreCreate 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