Here are the 5 key distinctive features of Qwik:<p>- Server-side rendering by default: Qwik server-side rendering works out of the box, without special configuration or extra libraries. Server-side rendering is the default, you don't have to turn it on.<p>- Resumability: Qwik applications are resumable, meaning that they continue on the client where the server left off, so the client does not have to re-render the component tree again after page load (no flickering effects, etc.). There is no need to do manual state transfer between the server and the client, Qwik takes care of that transparently.<p>- Lowest possible Time To Interactive: The initial Javascript payload of a Qwik application remains constant as the application grows, which is a unique property of Qwik. Only a very small amount of Javascript needs to be delivered on application startup (the Qwik Loader), giving Qwik applications a startup performance that is very close to a plain static page.<p>- Fine-grained, automatic lazy-loading: Lazy loading is completely automated, and done transparently by the framework. Qwik decides the lazy loading boundaries of the application at build time transparently, and splits up the application into fine-grained chunks. For example, the code for a click handler can be lazy-loaded only when the button is clicked for the first time.<p>- Proxy-based change detection: Qwik change detection is very convenient to use as it's possible to simply mutate data directly just like if we were handling plain mutable Javascript objects. Qwik change detection has all the performance of an "on-push" style change detection system, without any of the drawbacks associated with having to use immutable objects.