Fix A
Make it one big app.
Now nobody ships alone. One team's broken build breaks everyone, and updating a library means getting every team to agree first.
What breaks: your release schedule.
Tangle-free microfrontends.
Open source · MITMicrofrontends, made safe
Braid puts apps from different teams on one page. It untangles the libraries they'd normally have to share, and it catches the moment two apps stop agreeing on their data, before your users do.
01
Why this
is hard
Fix A
Now nobody ships alone. One team's broken build breaks everyone, and updating a library means getting every team to agree first.
What breaks: your release schedule.
Fix B
Nicely separated, but each one is stuck in a box. It can't flow with the page, its pop-ups can't cover the page, and screen readers treat it as a different page.
What breaks: layout and accessibility.
Fix C
It looks right, but the apps now share everything. Two versions of React collide, or one team's code quietly changes something another team relies on.
What breaks: something, on a Tuesday, with no clue why.
Fix D, the one Braid is built on
Keep each app's code apart. Put what it shows together.
02
How it works,
one word at a time
Some of these sound like a fantasy novel. They're simpler than they sound.
03
No server.
Yes, really.
And there's no server behind it.
Each section you've scrolled past is its own little app. The page itself is just files on a CDN. When each app started, your browser built its sealed space from memory, using a blob: URL. Nothing had to be downloaded first, and your back button wasn't touched.
| With a server · compat | From memory · contract | |
|---|---|---|
| Where its blank page comes from | /__braid/realm/billing/… | blob:https://this-page/8f3e… |
| Waiting time | one trip to the server | none, it's already there |
| Touches your back button | yes, carefully | never |
| Needs a server | yes, the Braid gateway | no, any static host works |
04
What we
promise
Braid never changes anything global on your page. We have a whole set of tests whose only job is to fail if it ever does.
Each app keeps its own libraries. One team can upgrade React this week without waiting on, or breaking, anyone else.
When apps meet, they check that they agree on their data. Older data gets upgraded step by step. If it can't be, you get a clear reason instead of a quietly wrong screen.
By default, apps your company owns are kept apart from each other. For code from outside your company, trust="untrusted" walls it off completely, cookies and storage included.
05
Start in
ten minutes
06
The parts bin
Every piece is a separate package under @braidlabs/*. Use one, or use them all.
Is your app the one being shown, not the one showing?
Then you don't need to install anything. Braid handles it.