use-everywhere
Updates mentioning use-everywhere. See the repository ↗ for commits and releases.
The docs ingest contract
rxova.org used to check out three repos and build their docs itself, which meant one project’s broken build took the whole site down with it.
Each repo now builds its own docs and ships them as a release asset; the site ingests the artifact. A project either publishes something valid or the site keeps serving the last good copy.
Jonatan Kruszewski
use-everywhere 0.4.0
The Turborepo migration, the Starlight docs and a single-branch release model, cut as one release.
No API changed. It is the release that makes the next ones cheaper.
Jonatan Kruszewski
Clearing the audit backlog
pnpm auditis only useful if it is ever green. svgo was pinned to a vulnerable 3.3.3 by an override, so it got unpinned; brace-expansion, js-yaml, webpack-dev-server and dompurify were resolved behind it.Dropping Docusaurus left sixteen overrides pointing at packages no longer in the tree, and those went too — a stale override is a silent way to hold a dependency back.
Jonatan Kruszewski
One Turborepo standard across every repo
Four repos had drifted into four ways of running the same six checks. They now share one Turborepo pipeline and one CI shape, so a fix to the build order is made once.
Node 24, TypeScript 6 and pnpm 11 across all of them, which also got
pnpm auditworking again.Jonatan Kruszewski
Docusaurus out, Astro Starlight in
All three docs sites moved to Astro Starlight. The landing already was Astro, so this leaves one framework across the whole origin — and dropped a webpack build that had been the flakiest job in every pipeline.
react-inputs took the chance to restructure: one component library with a flat sidebar and shared guides, instead of three manuals bolted together.
Jonatan Kruszewski
Every docs site points at the aggregator
Each project used to deploy its own GitHub Pages site at its own URL. All three stopped, and now take their
urlandbaseUrlfrom the environment instead of hardcoding one.The same build therefore works standalone at
/and mounted at/packages/<name>/, which is what let rxova.org host them without forking anything.Jonatan Kruszewski
Publishing over OIDC, with size budgets to match
npm publishes now run through trusted publishing — OIDC, no long-lived token in the repo — and every package carries provenance.
The rest of the gate went in at the same time: a changeset is required before a published package can change, each public export has its own size-limit budget, and per-file coverage has to clear 95%.
Jonatan Kruszewski
The use-everywhere docs, rewritten as walkthroughs
The docs were a hook list, which answers “what does this do” and never “why would I reach for it”. They are now walkthroughs that build something, with a per-hook reference behind them for when you already know what you want.
A concepts layer, recipes, a testing guide and a limitations FAQ fill the gaps — including the honest list of what the library cannot do.
Jonatan Kruszewski
An Inspector, and typed channels bound once
<Inspector />shows the live bus — channels, peers, who is leader — and ships on ause-everywhere/devtoolssubpath so it stays out of the bundle unless it is asked for.defineChannelbinds a channel and its message type at module level, so the shape is declared once instead of being repeated at every call site.Jonatan Kruszewski
Leader election, so exactly one tab does the work
Shared state is the easy half. The hard half is that five open tabs will happily run the same poll five times. Leader election picks one, and hands the role over when that tab closes.
Persistence landed alongside it, opt-in rather than automatic, plus an observable debug seam on the bus for anyone who needs to see what is actually crossing it.
Jonatan Kruszewski
use-everywhere is up
State and messages that exist in every tab, window and worker — the first cut is on npm.
@use-everywhere/coreowns the bus, anduse-everywherewraps it in React hooks.It arrived with the parts that are painful to add later: CI on every push, CodeQL, coverage gates, and licenses.
Jonatan Kruszewski
No entries match those filters.