Qwik awesome but still young cover

Qwik is an awesome but still young framework

We took Qwik for a spin in prototyping ahead for a new project and it was awesome and exciting however for us it's not quite production ready.

Remember that this is at the time of writing, a lot changes in this space even within 6 months.

If you're more curious about the unique concepts Qwik brings to the discussion of Javascript frameworks, they have a handy guide to all of it.

The good

The team behind Qwik are not only super passionate about their products, the CEO is even making useful content on Youtube if you want productive shorts, but they're also very talented so the future of the project is bright. Qwik has first class Typescript support, it uses Vite as the bundler and has its own API that's somewhat familiar to React devs.

Ecosystem

They're placing the ecosystem front and center, showing us how aware they are that these frameworks live and die by their communities first and foremost.

Overall it's pretty mature with all the major features you might need in an app such as authentication, image processing and testing covered with multiple solutions.

They also have full on integrations with all major hosting providers: Vercel, Cloudflare, Azure, Netlify and so on.

The level of integrations and available support here for an app that just recently came out in 1.0 really helps instil confidence.

Documentation

You have a full on playground to try out Qwik to your heart's desire and an interactive tutorial to get you up to speed if Javascript frameworks aren't your daily hobby.

Seriously, the documentation is so good you can even find a React cheat sheet to understand how it compares to the king.

The render lifecycle

This was biggest attraction to the framework, the way it kind of blurred the lines between server and client side components in some new interesting way. The developer experience here is much better than React and that's kind of unique to Resumability with some easy to use hooks to run logic server side and then run it again on the client side only if needed all in the same component.

...

There's lots more good things about it, too many to list here and there's already plenty of articles on the benefits of Qwik.

The bad

We managed to integrate Motion one just fine into our Qwik app to handle the animations, so that part left us feeling pretty confident in being able to fill the gaps in the ecosystem ourselves. However the elephant in the room with Qwik is the black magic box in some places.

We immediately hit some bundling issues where the error was simply error Command failed with exit code 1 and nothing else. Qwik's or Vite's debug modes didn't expose any additional information and when we tried individually building every bundle, the server, client etc., none of them error'ed causing even more confusion as to what could be causing our builds to fail.

The documentation does come short here where it doesn't go deep enough in explaining what's really going on step by step.

The app we built was entirely simple too and this is where we couldn't commit to making Qwik our go to framework to replace Nextjs.

It sounds so simple but the build error isn't what has scared us off, it's the nature of not being able to easily debug when something does go wrong.

To alleviate these we need either really in-depth documentation to act as a manual of knowing where to look for the various unclear errors or better yet, more verbose and clear errors, debug information on deployment steps.

What will you do in the future when a module breaks your app? Not an issue unique to Qwik, but for longevity it's a major consideration.

A bright future ahead

There's nothing really ugly about Qwik and we believe the team can fix the outlined issues, they've taken a build-in-public approach where all improvements, changes and new APIs have community input. It has a strong and passionate community around it which means any ecosystem shortcomings are going to be solved in time.

We hope this article ages poorly and we can commit to making Qwik a core part of our tech stack in the very near future.

For this project we ended up dropping Qwik in favour of Astro.js with Solidjs components. Join us on Twitter to follow further trials and tribulations as we navigate the world of Javascript.