Daishi Kato

Daishi Kato

@daishikato.com

React library author, maintaining three state management libraries, Zustand🐻, Jotai👻, Valtio🧙, and React framework, Waku⛩️. Join my Discord server 👉 https://discord.gg/MrQdmzd For more links, visit 👉 https://daishikato.com

3.6K followers13 following355 posts

⛩️ Just released Waku v1.0.0-rc.3! While waiting for more feedback during the RC period, I'm refactoring some internals for more "agent DX." Waku is a React framework designed for React Server Components from day one. Check it out. github.com/wakujs/waku/...

github.comRelease v1.0.0-rc.3 · wakujs/wakuFixes some issues and refactors internal and unstable functions. What's Changed chore(deps): update dependencies by @dai-shi in #2328 fix(router): show Not Found instead of refetching a missing ro...

To make "router-agnostic" more concrete, Waku's router is built on top of its RSC primitives, not the other way around. The RSC layer doesn't know what a route is. ⛩️

One architectural detail I like about Waku: Routing is a layer on top of the RSC runtime. In fact, waku/router itself is implemented with the same lower-level Root / Slot primitives exposed by waku/minimal. That's what I mean when I say Waku is router-agnostic. ⛩️

We've been working on instant navigation, and this release completes the experience. Try it with: <Link unstable_instant unstable_prefetchOnEnter={{ mode: 'once' }}>

Waku's Slice is inspired by Gatsby's Slice. The idea is the same. You define a shared component once, then put a <Slice> placeholder where you want it. It renders once and is reused on every page. Gatsby does this with static HTML at build time. Waku does it with RSC.

Waku now supports search params typing (opt-in), like TanStack Router has done before. Both give you typed search, but their coding styles are different, as the requirement is different. Waku: a typed prop from a codec you provide. TanStack: validateSearch + useSearch.

Inspired by Next.js's Instant Navigations, Waku now does it partially too. Click between /post/1 and /post/2. Shell and placeholder stay instant, the body streams after the fetch. Next: automatic, one file. Waku: opt-in, two files, since it doesn't want to rely on a compiler.

Unlike Next.js, Waku's core doesn't provide a caching mechanism, only static/dynamic rendering. Caching is provided by a separate package, waku-cache. Here's a comparison of cache usage between Next.js and Waku.

⛩️ Waku v1.0.0-alpha.9 is out! github.com/wakujs/waku/... It took a bit of work to make these improvements and fix bugs in edge cases, but I'm happy with the result. I think it's ready for us to start developing "cache" libraries in the ecosystem. Anyone interested?

github.comRelease v1.0.0-alpha.9 · wakujs/wakuThis release includes various improvements and fixes. There's one behavioral breaking change to note. If you have a static layout shared across different routes, it will no longer be shared (the ap...

🧙Valtio v2.3.2 is here! github.com/pmndrs/valti... If you had an issue with React Native, this might be a fix. Please try it. Valtio is one of the three state management libraries for React. The other two are 🐻Zustand and 👻Jotai.

github.comRelease v2.3.2 · pmndrs/valtioWorkaround for React Native JS engine. What's Changed fix(vanilla): remove Object.preventExtensions from createSnapshotDefault for Hermes compatibility by @manakuro in #1220 New Contributors @ma...