Appearance
Getting started with Widgets proposal
This section explains what widgets are, why we use the term 'widget' instead of 'micro frontend', and why it's important for NS to develop widgets.
What are Widgets?
Widgets are features built as small web frontend applications that can be included in applications owned by other teams. Often widgets and host applications are developed by separate teams. That is why widgets:
- Work fully encapsulated
- Are developed and released separately from the host application
- Are integrated at run-time in the host application
Commonly, this functionality is also called micro frontends (MFE). Within Frontpack, we made the choice to call them widgets:
- The name 'widget' is already widely used within ComIT for similar applications
- 'Micro frontend' is often confused with Module Federation, a specific way to integrate micro frontends at run-time and share dependencies. This is something we do not support within Frontpack.
To learn about micro frontends, check out micro-frontends.org.
Why are widgets important?
Widgets enable a reusable frontend architecture. The core ideas behind widgets:
- Independent development: Teams can work on different parts of the UI independently without impacting each other.
- Separate deployment: Each widget can be deployed independently, allowing faster releases and updates.
- Reduced cognitive complexity: A widget has a clear purpose, and developers working on widgets may need to keep less context in their heads while coding.
- Technology agnostic: Different widgets can use different frontend frameworks or libraries.
- Reusable: A widget may be reused across platforms and channels.
What does Frontpack provide?
Frontpack defines and documents standards for developing uniform widgets. We also provide tools to help teams develop widgets.