Skip to content

Qwik 2.0 Beta is here 🎉

A new era for resumable web apps

After 1.5 years of work, Qwik 2.0 Beta is finally out! Let’s explore the new APIs, performance improvements, and breaking changes.

Qwik 2.0 Beta
Qwik 2.0 Beta is ready for testing

🚀 Why Qwik 2.0 is a big deal

Qwik 2.0 is more than a version bump. It’s a full rewrite of the core with major benefits:

  • 🔥 Leaner HTML output (no more comment nodes)
  • 🧠 Simplified internal logic for better maintainability
  • 🆕 Powerful new APIs like useAsyncComputed$ and useSerializer$
  • ⚡️ Faster task scheduling and improved performance

✨ New APIs: Async + Serialization

Two new APIs land in Qwik 2.0:

  • useAsyncComputed$: a reactive signal that updates based on async logic.
  • useSerializer$: gives third-party libraries control over how data is sent from server to client.

📦 Breaking changes you need to know

Qwik 2 introduces a few breaking changes. The biggest one is the move to a new scoped NPM package: all imports now come from @qwik.dev/*, such as @qwik.dev/core and @qwik.dev/router.

Migration to @qwik.dev scope

A migration CLI is planned to assist with this update. While it may not be released yet, you can test the following command (check locally before applying it in production):

Beta migration CLI

The CLI is expected to update your imports and package.json automatically. Always review the changes on a separate git branch before merging.

🛠️ HTML validation enforced

Qwik now enforces valid HTML nesting. Tags like <p> must not contain block elements such as <div>. This ensures better compatibility and cleaner markup.

🎯 Performance gains in real apps

Thanks to the removal of comment nodes and loader serialization by default, your HTML output will be much lighter.

Combined with the new task scheduler, apps now load and respond faster—especially important for low-end devices and mobile users.

💡 Pro tip

If you use routeLoader$, remember that in v2, loaders are not serialized by default. If you still need server → client serialization, use useSerializer$.

🙌 The team behind it

Massive thanks to the Qwik core team (@Varixo, @W00t, @mhevery) and all community contributors for making this release possible.

Have questions, issues, or feedback?

Join our official Learn Qwik Discord server to get help and connect with the community.

📘 What’s next?

This is just the beta. The stable release of Qwik 2.0 will depend on the community’s feedback. So try it, break it, and report it!

👉 You can follow updates or contribute on the Qwik GitHub repo.

🚀 Keep learning Qwik

Want to master Qwik in 2025? Our full tutorial covers it all—from basics to advanced use-cases.

👉 Return to the Learn Qwik Blog