March 26th, 2026
The latest news releases from the Qwik team
March 26th, 2026
Major Changes
- BREAKING:
useTask()anduseVisibleTask()now await their cleanup functions before running the next invocation. If this is not what you want, do not return the cleanupPromise(and handle errors). (by @wmertens in #8481)
Minor Changes
Patch Changes
🐞🩹 prevent auto-exports for variables shadowed inside catch/do-while/switch/labeled blocks (by @Varixo in #8458)
🐞🩹 imported css passed to useStyles$ is now deduplicated (by @wmertens in #8436)
fix(core): useSerializer$ now can handle thrown Promises while initializing. (by @wmertens in #8473)
Split the optimizer bindings into the new
@qwik.dev/optimizerpackage. (by @wmertens in #8469)@qwik.dev/core/optimizernow re-exports the optimizer runtime from that package while keeping the Vite plugin bundled in core.🐞🩹 exported variables passed to $ functions are no longer incorrectly inlined into segments (by @Varixo in #8458)
🐞🩹 sibling node duplication when toggling elements with dangerouslySetInnerHTML (by @Varixo in #8461)
Updated dependencies [
4e54bce]:
@qwik.dev/optimizer@2.0.1-beta.0
Patch Changes
- ✨ the Qwik optimizer is now in a separate package, which reduces download size for the qwik package (by @wmertens in #8483)
Patch Changes
@qwik.dev/router@2.0.0-beta.30
Patch Changes
🐞🩹 SPA navigation should not be skipped on webkit engine (by @Varixo in #8446)
Updated dependencies [
8100990,ca477f8,7404b3b,bc8487d,e10382a,3f1ede7,b04c6b3,d82733c]:
Full Changelog: https://github.com/QwikDev/qwik/compare/@qwik.dev/core@2.0.0-beta.29...@qwik.dev/core@2.0.0-beta.30
March 15th, 2026
March 15th, 2026
March 15th, 2026
Major Changes
- BREAKING: The route configuration object has changed. The routes are now a more efficient trie structure and the config no longer includes
menus. This should not impact you. (by @wmertens in #8414)
Minor Changes
✨ SSG now runs in a separate process using Workers, and it can be re-run by running
server/run-ssg.js(by @wmertens in #8414)✨ eTag and in-memory cache for SSR pages. You can define an
eTagproperty on your page modules, which will be used to generate an ETag header for the response, and which is checked before rendering the page, returning 304 if possible. (by @wmertens in #8414) If you define acacheKeyfunction on your page module, it will be used to generate a cache key for the page, which is used to store the rendered HTML in an in-memory cache. This allows for faster responses for pages that are expensive to render and do not change often. The cache can be cleared using theclearSsrCachefunction from the request handler middleware.✨ Add
routeConfigexport as a unified alternative to separatehead,eTag, andcacheKeyexports (by @wmertens in #8414)The new
routeConfigexport groups all page-level configuration into a single export with the same resolution rules ashead(static object or function). When a module exportsrouteConfig, separatehead,eTag, andcacheKeyexports on that module are ignored.✨ Custom
404.tsxerror pages are now shown in dev mode, and you can now also createerror.tsxpages for other HTTP status codes. (by @wmertens in #8414) Read the HTTP status withuseHttpStatus().
Patch Changes
March 15th, 2026
Minor Changes
- ✨
reactify$(QwikComponent)creates React components that can be used inside aqwikify$(ReactComponent)app. This allows Qwik-wrapped React apps to embed Qwik components, with full context sharing, interactivity and resumability. (by @wmertens in #8413)
Patch Changes
- Updated dependencies []: