Introducing Waku Land

Introducing Waku Land

"Waku (wah-ku) or わく means “framework” in Japanese." - waku.gg

If you already know about Waku or don't have time to read, skip the content below and go right to Waku Land, a live deployment of every Waku example from its main branch.

Waku - a minimal React Server Component framework

While I'm incredibly grateful that NextJS exists, I admit that the framework doesn't apologize for its complexity. But that's ok, because its users expect it to solve a non-trivial amount of problems, and as the grumpy programmer saying goes, "It's hard to read because it was hard to write." (please don't abuse this quote 😅).

Waku, a new React Server Component framework not burdened with legacy code or users, is an up and coming alternative to this complexity. The framework was created by, Daishi Kato, the author of the popular libaries, Jotai, Zustand, and Valtio, each of which share a common characteristic - effective minimalism; and Waku is no different. Unlike NextJS, where React Server Components serve the framework, in Waku the framework serves React Server Components. Waku's tighter focus translates to a more approachable implementation.

I stumbled upon the project late last year and made a mental note to circle back to it as the codebase progressed. A few weeks ago I did just that. I had some free time and knew I wanted to write about Waku, so I went through the issues to see if I could learn more, maybe even provide a contribution if it made sense. I spent a couple days researching issues and leaving a few comments where I felt I could help, but I left the experience feeling like I had skipped a step - I wasn't really a user of Waku. So I fixed that and built Waku Land.

Waku Land - a live view of Waku's example code

site

Every six hours, Waku Land pulls the source code from Waku's main branch, builds the examples, and deploys them onto fly.io. Each example lives on a subdomain of waku.land and waku.land itself is its own Waku deployment. Lastly, each deployment uses SSR and runs in its own NodeJS worker.

This project is my attempt to do a few things:

  1. Gain experience running Waku at the bleeding edge in production.
  2. Provide a useful resource to new Waku developers.
  3. Uncover issues and provide the Waku maintainers with the necessary info to make informed decisions.

If you like it or want to provide feedback, feel free to reach out to me on Twitter.

Request to add an example

Want to create an example to include on Waku Land? Use the link to join the newsletter where I'll discuss taking submissions via email.