NAB has given its first in-depth view inside of ‘NAB-X’, a multi-year effort to create more modular user interfaces that can be manually or automatically customised based on staff or customer preferences.
iTnews first revealed the existence of NAB-X as a modular user experience (UX) under development back in January 2019.
At the time, it was couched as a way to personalise what a banking customer saw when accessing NAB’s online properties.
“A customer that holds both business and retail accounts, for example, could be shown everything in one place and have the power to toggle between business and retail banking within this space,” iTnews reported at the time.
The bank published a detailed Medium post last week on the progress of its efforts, including the tools and patterns it is using to re-architect the UX of its banker- and customer-facing applications.
It revealed plans to open source some of these tools in the hope that third-party developers use them to create modular elements - which NAB calls “miniapps” - that can be surfaced through its platforms.
“We believe that we have a model that will allow third-party developers and platforms to build capabilities that can be integrated into our ‘shells’ to provide customers with features they will love, and we want your help,” NAB senior manager and distinguished engineer Andrew Vaughan wrote.
“There are two paths to contribution: Join NAB to help build the NAB-X platform, [or] work with us as a third-party to build miniapps for us to integrate.
“The second path still requires a bit of work on our part. We are aiming to open source [some] tools to help you build and test miniapps.”
Vaughan said the bank’s embrace of miniapps for its frontends followed similar logic to its adoption of microservices on the backend.
The aim of NAB-X is to “decompose [the bank’s] monolithic front-ends into micro-frontends”, Vaughan said, though he noted that creating the tooling and patterns for miniapp development had been challenging.
“We needed to provide guardrails and patterns for teams to follow that would ensure a cohesive user experience, and compliant deployments,” he wrote.
“There was a high degree of interest, however it became clear that we would need to provide some boilerplate/templating in order to make it simpler to bootstrap new micro-frontends.
“We also started to see that we would need some common standards and patterns to avoid fragmentation and ensure interoperability.”
NAB-X was formed to create the technical scaffolding and guardrails for micro-frontend - or miniapp - creation.
The easiest way to think of the miniapp is as a UI component or tile that sits on a webpage or app (the ‘shell’).
Miniapps comprise frontend code with a paired backend-for-frontend (BFF). Both are containerised but “deployed and versioned as a single unit, to reflect the fact that they are intentionally tightly coupled”.
“Each miniapp git repo consists of both the frontend and backend code,” Vaughan wrote.
“This is templated out for each new miniapp via a Yeoman generator that provides a working starting point app, as well as integration with NAB pipeline tools to deliver the miniapp in a compliant manner.”
The move from monolithic to microapp-based frontends is designed to occur over time.
Vaughan said that miniapps can currently “be surfaced in existing platforms alongside existing functionality.”
However, he noted that “the risk here is that there will be a period where the worst of both worlds is in play - monolithic deployments, and also integration of miniapps into those platforms which requires coordinating across multiple teams.”
“This is something the NAB-X team are very conscious of, and so a reference shell that is optimised for miniapp delivery is being promoted to platform teams as the next stage of evolution.”
Vaughan said the intent is that this shell “will surface fragments of the existing platform via specialised miniapps for that purpose, and [that] all new/change work will involve building/porting features as native miniapps.”
“At the appropriate point in time, the remainder of the miniapps are targeted for a final conversion effort, and the legacy platform is decommissioned,” he wrote.
Vaughan briefly touched upon the forthcoming ability of customers to essentially personalise the way the NAB portal - or other app - appears when they log in.
This is powered by what Vaughan calls the ‘NAB-X tailoring engine’, though not a great deal of detail was provided on this.
“We plan to allow users to set preferences that will control which miniapps they see, and as an extension move towards ML [machine learning] based tailoring that will adapt to user behaviour,” Vaughan wrote.
Ultimately, NAB hopes to create an ecosystem of miniapp developers that will produce miniapps that can then be surfaced in NAB’s online or app-based properties.
Vaughan said the bank intends to open source a “miniapp generator” to help developers, a software development kit (SDK) that handles integration with the NAB shell, and a component library that will enable miniapps to meet NAB’s internal accessibility and branding standards.
It will also “build a dedicated hosting environment for third-party miniapps”, though did not say how long this aspect of the NAB-X vision might take to execute.