
Press
Micro Frontends: the future of frontends
Good frontend development isn’t easy. Making frontend development scalable so that multiple teams can work on complex projects simultaneously, is even harder. This blog explains what Micro Frontend development is, how it works, and the benefits of using it to develop websites and applications.
Today, frontend development begins with the development environment and architecture that form the basis for creating new applications. Micro frontends aren’t just responsible for a particular task. They perform every step needed to complete development functions, from frontend to backend and databases, as you can see in the illustration below.
Micro Frontend development uses agile methods to enable different teams of developers to work autonomously on small parts of the code for a website or application.
“Micro Frontend development is a method of working with different teams of developers autonomously on a small part of the code for a website or application.”
Clear communication between teams is important when developing large scale new projects. During Micro Frontend development, teams work on their own feature, separate from the overall application, independent of the other team’s code. Smooth integration of new code when it’s ready for the production environment, and join the current application is essential. After integration the new feature should be able to communicate with other features in the application. The new feature should also be accessible without the application, through the browser. Routing features is a challenge that can be overcome in several ways:
Composition
Application shell and routing
Communication
Composition is the bringing together of various frontend applications with the main application or to put it another way, it's about the proper integration of the various individual components. In frontend development, composition takes place in the server or in the browser. In server-based composition, the entire application is contained in an html page. The Micro Frontend is a tag in that application. Such a tag, along with JavaScript and CSS code, is required to run the application from the server. Tools to do this include NGINX, Tailor and custom solutions with NodeJS. Client-side (browser) composition often involves iframes, HTML links or uses frontend code written in plain JavaScript or in popular frameworks React, Angular and Vue inside the web component. The use of web components is preferred here because they are a standard part of the browser’s own API.
Routing is another important challenge when working with Micro Frontends. The main issue here is how the micro application is positioned in relation to the main application and how it can be accessed. The application shell is the main application in which all the Micro Frontends run and takes care of all connections between the micro applications, but also the global settings and the overview.
Framework
Another way to properly manage routing and connections is to develop your own application shell. You can do this using a framework such as Angular or Vue. The Single-SPA framework is another great application shell solution. It can integrate Micro Frontend apps written in Angular, Vue or React into its shell.
Gone are the days when a website was enough for a proper, digital presence. Our experts happily assist in bringing about a digital ecosystem - optimised and on-brand - fit to serve your business goals.
Micro Frontends use different methods of communication but generally they should have as little communication with each other as possible. In Micro Frontends each component should be autonomous. It is important to properly regulate communication between applications as this prevents friction between teams, allowing each team to focus on its own customer.
The best approach to communication is to change as little as possible about who owns the data. Each frontend retains its own data and does not share it with other Micro Frontend apps. It’s common to share the relevant data via a url, but that is not desirable in every Micro Frontend situation. Parent-child traffic (vertical) can be used for this purpose. This is widely used by frameworks such as Angular and Vue. Horizontal traffic (or children communication) is also possible, such as custom events.
Once an organisation has chosen to set up architecture according to the principle of Micro Frontends, the writing, updating and testing of the code begins. When working with large numbers of developers, there is always a risk of making mistakes because JavaScript has no type safety. For this, TypeScript is very useful. TypeScript is a language widely adopted for new projects that acts as a kind of spell check for functions and classes in TypeScript and JavaScript. There are also other tools to analyse JavaScript (or TypeScript) code, such as ESLint and Prettier.
Developing with Micro Frontends means that you can incrementally update, upgrade or even rewrite parts of the frontend without having to deploy the whole application at once. These agile methods and independent features roll-out means less delay and shorter time-to-market. Micro frontends are easy to scale and migrate, and autonomous teams of developers can work on features simultaneously. The user experience (UX) provided by Micro Frontends is not standardised but is consistent over all devices.
With a background in web development as well as web project management, Jeff, being SLD Technology in Herentals, is the permanent point of contact for many. For the latest developments in Drupal, PHP, jQuery, JavaScript, CSS, (X)HTML and more, or for help with the eternal puzzle that is every web project.
Press
Press
Blog
Case
Case
Case
Case
Case
Case
Case
Case
Case
Case
Case
Case
White paper
Case
White paper
White paper
White paper
White paper
Case
Case
White paper
Dossier
Video
Case
White paper
Press
Press
Press
White paper
Video
Video
Video
Press
Case
Case
Press
White paper
Case
Press
White paper
Dossier
Blog
Press
Video
Case
Dossier
Blog
Press
Blog
Press
Press
Press
Case
Blog
Webinar
Blog
Case
Case
Dossier
Dossier
Blog
Case
White paper
Case
Blog
Blog
Blog
White paper
White paper
Webinar
Blog
Blog
Press
Press
Case
Press
Press
White paper
Case
White paper
Blog
Webinar
Blog
Blog
Press
Press
Dossier
Blog
Webinar
Case
Blog
Stack
Webinar
Blog
Webinar
Blog
Webinar
Blog
Webinar
White paper
Webinar
Blog
White paper
Blog
Dossier
Dossier
Case
Blog
Webinar
Case
Blog
Webinar
Blog
Blog
Event