Sync + AsyncState Management.One Mental Model.
If you know Zustand and TanStack Query, you already know FloppyDisk(.ts).
It unifies everything into a simpler API. Less boilerplate, zero dependencies.
✓ 103 modules transformed.
/.vite/manifest.json 3.23 kB │ gzip: 0.60 kB
/assets/root-DS469DaY.css 15.33 kB │ gzip: 3.74 kB
/assets/components-DrxDq1-G.js 1.01 kB │ gzip: 0.59 kB
/assets/store-floppy-disk-D634Gohp.js 1.13 kB │ gzip: 0.52 kB 🎉
/assets/store-zustand-BJYVMYXp.js 1.68 kB │ gzip: 0.79 kB
/assets/utils-DpvILWFZ.js 1.95 kB │ gzip: 0.60 kB
/assets/root-CB2-KCWF.js 2.48 kB │ gzip: 1.01 kB
/assets/home-DkCzTYiQ.js 2.81 kB │ gzip: 1.19 kB
/assets/async-floppy-disk-C1Jq5CIc.js 7.15 kB │ gzip: 1.99 kB 🎉
/assets/react-BaGhX6Iy.js 11.44 kB │ gzip: 3.87 kB
/assets/async-tanstack-Bqi-YPia.js 43.94 kB │ gzip: 12.62 kB
/assets/chunk-UVKPFVEO-BCVTWmlK.js 126.29 kB │ gzip: 42.59 kB
/assets/entry.client-CMKBzKJ-.js 190.57 kB │ gzip: 60.05 kB
✓ built in 715ms
Like Zustand, but has additional capabilities:
- No selectors: automatically optimizes re-renders
- Store events:
onFirstSubscribe,onSubscribe,onUnsubscribe,onLastUnsubscribe - Easier to set initial state on SSR/SSG
- Smaller bundle
Like TanStack Query, but:
- DX is very similar to Zustand
→ One mental model for sync & async - Much smaller bundle than TanStack Query
→ With nearly the same capabilities
What I like most about your library is how it simplifies the mental model without sacrificing power. Automatic reactivity without selectors feels like a big step forward—it removes a lot of unnecessary decisions and just works the way you’d expect. The idea that queries are just stores is also very clean, making sync and async state feel consistent instead of like two separate systems.
I also appreciate the philosophy behind it. Treating async as “state over time” and focusing on results instead of the process makes the API feel predictable and easy to reason about. Overall, it strikes a rare balance: minimal surface area, but still flexible when you need it.
ChatGPT
After I showed the codes to it