Back

Killing Micro-Frontends

March 26, 2026 React Paris
Tales from the Trenches
Nx
Monorepo
Dx
Architecture

Here is a couple of links that can be useful:

Tool shout-outs

A few tools did a lot of heavy lifting for us. None of them are magic, but they removed a surprising amount of friction and helped us keep the monorepo moving without turning every release into a ritual.

Mergify

Mergify was a great fit for the operational side of the repo. The merge queue let us validate changes against the latest main, and the freeze rules were perfect to support the “one release at a time” periods without relying only on humans remembering the rule.

Nx

Nx was the backbone of the setup. Task inference meant less hand-written config, and the plugin system gave us generators, executors, and migrations that removed a lot of custom tooling work.

Nx Cloud

Nx Cloud is where the CI story got a lot better. Remote cache, Nx Agents, dynamic changesets, flaky task detection, and conformance all push in the same direction: less wasted compute, faster feedback, and more confidence at scale.

Knip

Knip helped us remove dead code and dependency drift we would not have caught with regular lint rules alone. It is especially nice in monorepos because it looks at unused files, exports, and dependencies across package boundaries, and its workspace support is solid.

Manypkg

Manypkg was very useful to keep package versions aligned across the workspace. It catches mismatches between internal packages and external dependency ranges before they turn into weird resolution issues.

Sherif

Sherif is one of those tools that feels a bit like a super linter for monorepos. It found package manifest issues, version drift, and workspace mistakes early, which saved us from debugging the boring kind of breakage later.

Syncpack

We also tried Syncpack. It did not fit our needs in the end, but that is not a knock on the tool: if you want stricter dependency policies, version groups, and package.json normalization, it may fit yours better than it fit ours.

Are the Types Wrong? and Publint

Those two are great publishing safety nets. Publint checks whether a package is shaped correctly for consumers, while Are the Types Wrong? makes sure the TypeScript side of the package actually resolves the way people expect.

Vite and Vitest

Vite and Vitest were a great pairing for fast feedback loops. Sharing config between dev, build, and tests removes a lot of duplication, and that matters a lot once the repo gets large.

Storybook

Storybook gave us the component-level feedback loop, and the Vitest addon made it much more than a component gallery. Having stories double as docs and interaction tests is a pretty nice deal.

Share this article on Twitter, and more!