React Web Applications

A smarter, faster way to develop React Web Applications.

The Brill CMS and Brill Framework provide an all-in-one platform that accelerates the development of React Web Applications, reducing both effort and risk. Crucially there are no limits on the look-and-feel, UI Components or Server side functionality. The Brill CMS and Brill Framework empower you to create anything achievable with a custom React Web Application.

Developing a large and complex web application necessitates a team of developers tasked with writing extensive code and integrating multiple technologies. Think online banking, holiday booking, airline reservations, car insurance, annuity quotes, share dealing and e-learning. The Brill CMS and Brill Framework can reduce the volume of code needed and enhance team productivity.

When you need to make a simple change such as adding an extra field to a form, it typically entails several code modifications and a release. You have to change the UI code, change the server API, change the server database access code and do a release of both the client and server.

What if you could add a new field to the UI and also to the database and do it without requiring a code release? How much coding effort and release time would it save? A Headless CMS could be employed to minimize the frequency of releases required for content changes. But then you've got to get to grips with the Headless CMS API and it still doesn't help with just adding an extra field.

Opting for a 'No Code' solution is a possible option. This might be acceptable if there's a 'No Code' solution that covers your application area. But what if you want a custom look-and-feel with custom components and want to connect to your own internal system using an API that no one else uses? You are going to have to write some code but by making use of the Brill CMS and Brill Framework, the coding effort can be reduced.

The goal of the Brill CMS and Brill Framework is to enable you to achieve anything achievable through 'Full Code', while providing a platform that helps you get things done quicker. It's a 'Low Code' solution, rather than 'No Code' solution. You will need to write code for custom React UI components, field validation and server side business logic, but it will be a lot less coding than doing everything yourself from scratch.

Let Content Creators visually edit pages.

Brill CMS

Rather than developers creating pages using JSX, the Brill CMS enables the creation and editing of pages using a visual editor. Typically the Developers will use the CMS to create a Storybook with a set of UI components and Themes that match the organisations style guidelines. The Developers will normally create any initial set of pages containing tables, forms, buttons and layout components. From there the Content Creators can take over and add their content and drag and drop components from the Storybook onto pages. By having a set of approved components in the Storybook, you can save the Content Creators time and help them stay within the organisations style guidelines.

The Brill CMS includes a Storybook with a wide array of HTML and React Material-UI components. The Material-UI library is very comprehensive and can be used for a wide range of applications. The Material-UI library include buttons, forms, fields, tables, responsive layouts, typography, text editors and many other components. Use is made of Material-UI Themes to control the look-and-feel of components. Components are constructed with accessibility as a priority.

While the component library is extensive, your application might necessitate unique components that have not been developed by others. For example, an e-learning application to teach say chemistry. You might want a set of test tubes that allow a student to visually mix chemicals together. You can develop custom React components and added them to your Storybook. Content Creators can drag and drop components from the Storybook onto their pages and customize them.

A good middleware supports real-time updates.

Brill Middleware

Components typically retrieve data from a source and publish their results to the same or another location. When a field is first displayed, it is populated with the initial field value. When the user enters a value, the new value needs to be published so that it can be picked up by a submit button or another component. The initial data could come from the Database or the Server or another component within the application and the result could be used within the application or published the database or to other users.

Most conventional React Web Applications and Headless CMS API's use REST for communications between the server and client. REST involves the client sending a request and the server responding with a response. 

The REST protocol lacks built-in features for the Server to send messages asynchronously to the Client, such as updating share prices, for example. There are workarounds such as polling, but it's not a standard part of the REST protocol.

The Brill Middleware differs significantly from REST as it utilizes WebSockets, allowing the Server to push data to the Clients. The Brill Middleware supports both request/response messaging (similar to REST) and subscribe/publish messaging. With subscribe/publish messaging, a component can subscribe to a topic. When someone else publishes to the topic, the subscribers get updated with the latest data.

A framework provides the foundations for building great applications.

Brill Framework

The Brill Framework enables components to share data with each other and the Server. In includes Client functionality such as routing and Server side functionality for authentication and databases access.

Client

We use TypeScript, as opposed to JavaScript, for the development of React components. We find TypeScripts makes the code easier to understand by other developers and makes the code more maintainable. Components can be developed using either hooks or classes. As far as the Brill CMS is concerned, it doesn't know any difference between a component developed using hooks or using classes.

Server

The Brill Server was developed using Java and Spring Boot, rather than using NodeJS. With many of our previous customers, they've developed extensive backend systems running on Java Servers. They have the infrastructure to handle massive numbers of users doing complex business transactions. Think online banking, holiday booking, airline reservations, insurance, annuity quotes and share dealing. Trying to get their IT departments to switch to NodeJS is an uphill struggle. These organizations have substantial teams of developers and support staff who are hesitant to transition to NodeJS for their mission-critical business applications, which have been in development for years.

The middleware and all the internals use JSON as the format for handling data. The Brill Server provides Clients with access to Git repositories, databases and other external systems. There's a permissions based framework and a lot of other server side functionality.

Database

The Brill Server provides access to any database that supports JDBC. A React Component can retrieve data from a database by specifying the topic of a file containing SQL or a JavaScript file that's executed in a sandbox on the server. Data is returned in JSON format. A component can also update the database. Named query parameters are used in SQL queries, that must match the JSON parameters. There are checks to prevent SQL injection type attacks.

The key idea is that a React component can specify a topic it needs without needing to know the source, whether it's another component, the server file system, a git repository or database.

Source Code

The full source code for both the Client and Server is provided. This is useful for Developers to base new React components on existing components. It also allows you to extend the Middleware and add your own Server side functionality. It's useful for debug purposes and to check the quality and security of the code.

Having your own server gives you more control than SaaS.

Deployment

SaaS

We provide a SaaS version of the Brill CMS and Brill Framework. This is mainly for evaluation purposes and development of an initial POC. The limitation with the SaaS version is that you can't add your own components or server side functionality. 

Own Server

To take full advantage of the Brill CMS and Brill Framework, you need to run on your own in-house server or on a cloud platform such as Amazon Web Services (AWS). Intranet web applications often run on in-house servers for security reasons. AWS is a good solution where you need to be able to scale up quickly, run servers in different geographic locations or just don't want the hassle of maintaining your own machines.

We can help set the system up for you or you can install the software yourself.

Cluster

To handle very large numbers of users, a cluster of servers can be configured. A Content Switch is required and also a high availability shared disk to store session data in case of failover.

We us our own technology.

No Limits

The Brill CMS was developed using the Brill CMS! We don't know of any other CMS that was developed using itself. Let us know if you know of one.  

The Brill Software website was also developed using the Brill CMS.

There really are no limits on the web applications that can be developed and the look-and-feel that can be achieved. You might have to develop your own custom components and server endpoints but anything you can do using a bespoke React application can be done using the Brill CMS and Brill Framework.

Brill Software

Products

Brill CMS

React Components

Brill Documentation

Brill Middleware

FAQ

Contact Us