We are in the middle of an interlude. Here and there, major projects are cooking behind the scenes, each with promises of big improvements.
Yet, right now we are stuck in the middle.
Here is some of the projects I am following:
- React 19 (stable)
- TanStack Start
- React Router v7
- Vite v6
- Effect cluster
- Main-stream local first
Let's take a closer look at this situation ๐
When client is not enough (anymore)
Vite is great. Seriously. The experience is fast and smooth, the project always improving.
Yet, Vite alone is not enough. The other major piece of the puzzle is routing. And routing is complex.
Ideally, a framework would provide a seamless experience on top of Vite, while at the same time offering a complete solution for routing (navigation, SEO, code splitting).
Guess what? Things are cooking. Two projects I am following:
They both build on top of Vite, they both offer all the features you expect from a modern router. And they both are work in progress ๐๏ธ
Meanwhile, Vite v6 is currently in beta and soon to be released.
Tension between client and server
The other piece of the puzzle dwells on the server. With the promise of React 19 stable soon, frontend is not just about the client anymore.
Features like server components and new hooks like use
and useActionState
are bound to become the standard. Frameworks will be expected to support these features.
This adds a new layer of complexity, especially when it comes to configuration, builds, and deployments.
Sprinkle some Rust in the mix
Tooling for javascript is moving in the Rust direction. Recently with the release of Rspack v1 and now also Rsbuild v1.
Also Vite is slowly moving in this direction. Rolldown is the successor of Rollup, written in Rust, and (quoting from the website) "Designed for Vite".
You may not be into implementing frontend tools, but it's not improbable that learning Rust may become necessary, if only to understand how your configuration works ๐คจ
The next Effect breakthrough is called cluster
On a more backend-side, Effect cluster is currently in full development. We are talking about things like durable workflows here (I will probably write about the details in the future).
That's complex territory here. The effect team is sharing the details behind how cluster works in a series of live streams.
How is local first evolving?
I have been exploring the practice of local first lately. Also here we are in the middle of a big shift. But not yet there ๐ค
New local-first experiment with @loro_dev Achieved live sync in react ๐ `useSyncExternalStore` subscribe to changes ๐ Extract latest data Loro supports export/import in Uint8Array, so it should be possible to sync with http ๐
There are a lot of moving parts:
All these pieces are tightly interconnected.
The API works on local storage, but the data structure should keep track of changes (CRDTs) and also allow for server-side syncing.
Many libraries out there, each proposing a solution for one of these problems, but it's still a struggle to picture all together and build a complete app.
This is coming, not sure how far ahead ๐ค
In this situation, starting a new project right now may be a hazard. A major shift is coming, not sure how soon. Starting something now may leave you stuck behind when this new wave hits.
Definitely keep an eye open ๐
XState course is released ๐
XState is a safe-bet during this interlude: it's stable and here to stay ๐ฏ
XState Complete Getting Started Guide is out now ๐ Learn the power of actors and statecharts to manage the state of your app with XState Here is what you'll learn ๐๐งต typeonce.dev/course/xstate-โฆ
Meanwhile, I updated my personal website to focus on a more broad variety of topics.
Expect all my tech content to be available on Typeonce (new courses, projects, articles, snippets).
See you next ๐