Carlos Cifuentes
Glossary

Host (shell) application

The host, or shell, is the application the browser loads first in a micro-frontend architecture; it provides layout, navigation and session, and loads the remotes.

The host owns the things that must exist only once in a micro-frontend product: the top-level layout, the main navigation, the top-level routes, the session and the configuration of shared libraries. It contains little or no business functionality. That lives in the remotes it loads at runtime.

A good host is small and changes rarely. Every remote depends on it, so every change to the host is a change to the whole product.

Example

A back-office product has a shell with a sidebar and a header. Its route table maps URL prefixes to remotes:

  • /customers loads the customers remote.
  • /invoices loads the invoices remote.
  • /settings loads the settings remote.

The shell reads a manifest at startup to find where each remote is deployed. It loads each remote only when the user navigates to its route. If a remote fails to load, the shell shows an error panel for that area and the rest of the product keeps working.

Common misunderstanding

Teams often let the host grow into a second monolith. Shared services, business rules and utility code pile up there because it is the one place everyone can reach. After a while, no remote can be released without a host release, and the independence is gone.

Keep shared code in versioned libraries. Limit the host to layout, routing, authentication and error handling, and give it a clear owner. In a migration, the host can also be the place where the legacy application is mounted as one more remote while new ones replace it. The micro-frontends page describes this split.

Why it matters. The host defines the contract that every remote must follow, so its design decides how independent teams really are. In a migration it is the frame in which old and new applications coexist.

Related terms

Planning a migration or a micro-frontend platform?

In a 20-minute call you describe your situation and I tell you how I'd approach it. If it isn't worth doing yet, I'll say so.

Message me on LinkedIn