A durable offline write queue: enqueue with an optimistic id that doubles as an idempotency key, persist it so a reload keeps the work, drain in order when the connection returns, and park a poisoned write instead of letting it block the rest.
npx shadcn@latest add @zyeon/use-mutation-queueZyeon UI limits how often it can be asked, and useMutationQueue hasn't had its turn. Its source will show here once it has.