Get the latest tech news

Show HN: Q.js – Smaller than React/Vue, yet more powerful (40KB gzipped)


All-In-One Front-End Web Framework from Qbix, alternative to jQuery, Angular, Vue, Ember etc. - Qbix/Q.js

Yet it packs components, events, routing, caching, batching, i18n, animations, IndexedDB, service workers, and more β€” all in core. Q.js is part of the larger Qbix platform, which powers real social apps (with accounts, feeds, groups, payments, etc.). Q.IndexedDB for easy interaction with the built-in IndexedDB Q.ServiceWorker to manage service workers in a standard wayRequests Q.request(), Q.handle(), Q.loadUrl(), Q.addScript(), Q.addStylesheet() Flow Q.chain(), Q.getter(), Q.batcher(), Q.promisify(), Q.debounce() Helpers Q.find(), Q.activate(), Q.cookie(), Q.handle() Feature πŸ† Q.js ⚑ (40KB) React πŸ—οΈ Vue 🎨 Angular πŸ›οΈ Svelte πŸ”₯ Bundle Size πŸ“¦~40KB gzipped (core + tools + events + routing) 42KB + ReactDOM (120KB)~60KB runtime140KB+~50KB compiler/runtime Build Step πŸ› οΈ None (drop-in, works with.html+.js) RequiredRequiredRequiredRequired Rendering Approach 🎨 Direct DOM Updates (No Diffing, No Virtual DOM) Virtual DOM diffingVirtual DOM diffingChange detection via zonesPrecompiled updates (no VDOM, still re-renders) Performance ⚑ Ultra-Fast (Only Updates What’s Needed, No Extra Work) Good, but reconciliation overheadGood, but reconciliation overheadHeavy watchers/zonesFast, but dependencies rerender Memory Usage 🧠 Low (No Virtual DOM, Minimal Garbage Collection) Higher (VDOM objects + GC)Higher (VDOM overhead)Higher (framework runtime)Lower than React, some overhead State Management πŸ“¦ Q.Streams + Events (lightweight, no reconciliation) React state / Redux / ContextVuex / PiniaServicesReactive stores SSR & Hydration 🌍 Pre-renders HTML + activates Tools dynamically Hydrates VDOM (slower)Hydrates VDOMHydrates Angular componentsNeeds hydration after precompile Component Model 🧩 Q.Tools (behaviors on any DOM element) JSX + HooksDirectives + templatesComponents + decoratorsCompiled components Interactivity & Events 🎭 Direct event binding (auto-cleans on removal) Event handlers in JSX (hook dependencies)Event handlers in templatesAngular event bindingsReactive bindings Batch Updates πŸš€ Efficient (requestAnimationFrame +.rendering()) setState batchingNextTick batchingZone-based batchingDependency-based, no explicit batching Lazy Loading πŸ’€ Built-in (images, tools, components auto-lazyload) Needs 3rd party libsNeeds 3rd party libsBuilt-in, but heavyManual setup Internationalization 🌐 Built-in ( Q.Text) 3rd party3rd partyi18n module3rd party Incremental Adoption πŸ”Œ Yes (drop-in, enhance existing HTML without rewrite) NoNoNoNo SEO & Progressive Enhancement πŸ” Works with static HTML (enhances dynamically) Needs JS hydrationNeeds JS hydrationNeeds JS hydrationNeeds JS for interactivity Ecosystem Dependence 🌐 All-in-one (routing, templates, events, batching, caching built-in) Needs Router, Redux, i18n, etc.Needs Vuex, Router, i18nHuge framework but still many extra libsNeeds Kit/Sapper + libs Learning Curve πŸ“š Simple (declarative, minimal magic) Medium-high (hooks, context, JSX)Medium (directives, reactivity caveats)High (decorators, DI, RxJS)Medium Best For βœ… High-performance apps, real-time dashboards, low-latency UI, social platforms Full-scale apps, large component hierarchiesSmall-to-medium apps, good DXEnterprise-scale appsSmall-to-medium apps, hobby projectsYou can dynamically create elements in a React-like way, such as this:

Get the Android app

Or read this on Hacker News

Read more on:

Photo of React

React

Photo of vue

vue

Photo of Q.js

Q.js

Related news:

News photo

Show HN: Turn Markdown into React/Svelte/Vue UI at runtime, zero build step

News photo

What learning react won't teach you: Image Formats

News photo

I like Svelte more than React (it's store management)