Promote RecordCard out of the microfrontends and into shared/ui — one Card, many consumers
Why Care?
In a federated UI, the most expensive mistake is to let each microfrontend
invent its own visual primitives. You end up with six subtly-different Card
components, six date-format helpers, six button-press affordances — and the
shell composes them into something that looks like a designed app but
actually isn't one.
The fix is unsexy and load-bearing: move the primitives into the shared
package early, before the divergence has time to set in. RecordCard is the
first concrete example of that discipline. From here on, any UI element
likely to show up in more than one microfrontend gets considered for
packages/ui before being authored inside an app.A bonus:
ErrorBoundary landed in the same commit. Federated remotes can
fail in interesting ways at runtime (the remote isn't reachable, the manifest
shifted under you, a shared dep version drifted). A shared ErrorBoundary
gives every microfrontend a consistent failure UX without each one writing
its own.What's New?
packages/ui/src/RecordCard.tsx— promoted from app-local Card components into the shared package. Single source of truth for how a "record" presents in the workshop.packages/ui/src/ErrorBoundary.tsx— first shared error-handling surface; every MFE wraps its mount in it.packages/ui/src/index.ts— explicit barrel for what's exported from the package.- The microfrontend-local Card components stayed in their dists for comparison this commit; they were removed in a later cleanup.
Backfilled from git history on 2026-05-12. Commit:
c627d5b.