CLI tool
qooxdoo/qooxdoo avatar
qooxdoo/qooxdoo

qooxdoo: a JavaScript framework that compiles your app

qooxdoo - Universal JavaScript Framework

792 stars264 forksJavaScriptNOASSERTION

At a glance

What is it?
qooxdoo is a universal JavaScript framework with an object-oriented programming model, a GUI toolkit and a compiler that turns your source into a deployable application for the browser, mobile or outside a browser entirely. The trade is that you write against its own widget and data-binding system rather than the DOM, and you accept its own build toolchain.
Who is it for?
Adopt qooxdoo if you want a full application framework with a GUI toolkit, data binding and a compiler that produces a deployable bundle, and you are willing to write against its own widget system rather than the DOM. Do not adopt it for a small project that needs a form and a fetch call, because the compiler and the framework conventions cost more than they save.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 4 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

It compiles, and that is the whole design

qooxdoo is described as a universal JavaScript framework that enables you to create applications for a wide range of platforms. The distinguishing mechanism is that it is a compiler-based framework rather than a library you include. You write source in the framework's own dialect, and a compiler turns it into the JavaScript that actually runs, with the object-oriented programming model compiled down to prototypes. The payoff is that the framework owns the whole application, so it can do things a DOM library cannot, which is why the same source can target rich interactive applications, native-like mobile apps, lightweight traditional web applications, or even applications to run outside the browser. The README says you leverage the integrated toolchain to develop and deploy applications of any scale, while taking advantage of modern web technologies like HTML5 and CSS3, its comprehensive feature set and a state-of-the-art GUI toolkit.

The GUI toolkit is the reason to accept the compiler

Most of qooxdoo's appeal is in its widget layer rather than in its syntax. The keywords in the package manifest list widgets, gui, databinding, classes, interfaces and mixins, which describes an object-oriented component system with a data-binding layer, and the framework supports mixing in behaviour through mixins rather than by subclassing a base class. That model comes from its desktop and mobile roots, where qooxdoo grew a native-like application model for devices that are not a browser tab. The consequence for a web developer is that the DOM is a target the framework controls rather than an API you drive. A designer in the qooxdoo IDE can lay out the UI, and the compiler generates the code and the resources. If you are coming from React or Vue, this is the largest adjustment, and it is the reason the project markets itself with the line The JS Framework for Coders rather than as a component library.

One CLI, qx, runs the compiler and the toolchain

Everything goes through a single command line, qx, which the package manifest registers under the bin key as bin/deploy/qx. If you develop with qooxdoo you would normally use a stable npm release, and since version 6.0.0 that release contains the compiler and the CLI, invoked with npx qx followed by a command:

bash
npx qx <command>

If you want to hack on qooxdoo itself, the README points at docs/development/contribute.md. The npm scripts show what the framework does for itself. A preinstall runs node ./addGitHook, pretest runs node ./bootstrap-compiler and the test script runs node ./bin/build/qx test with the colorize and quiet options, and prepack runs node ./bootstrap/qx deploy --clean. There are also scripts for building the devtools and the website, both of which go through node source/resource/qx/tool/bin/. The presence of a bootstrap-compiler and its Windows counterpart, bootstrap-compiler.cmd, tells you the compiler has to bootstrap itself, which is the main source of friction for someone trying to build from a clone.

A 7.x stable line with an 8.0 beta in progress

The release history says two things at once. The current stable is v7.9.3, published on 2026-06-05, and the 8.0 line is still in beta with v8.0.0-beta.2 on 2026-02-25 and v8.0.0-beta.3 on 2026-03-03. The repository is not archived and the last push was on 2026-10-19, so the project is being worked on, and the 7.x line is still receiving releases. The package version in the manifest matches the stable tag at 7.9.3, and the package is published as @qooxdoo/framework. The licence is stated in the README as the MIT License with a LICENSE file at the root, even though the repository metadata classifies it as a custom licence, so the file itself is the thing to read if you need certainty about the terms. Documentation is published for the released version at qooxdoo.org/documentation, the API reference at the qxl.apiviewer, and the master documentation separately.

Contributing means opening a bug first

The contribution rules are unusual enough to be worth stating plainly, because they are a deliberate policy rather than an accident. The README says there are many ways to contribute, ranging from providing feedback, making translations, providing a custom library, all the way to full-blown patches to the code. But for every patch to the repository the project requires an open bug in its issue tracker, and commits to the repository fall under qooxdoo's own licence terms. The rule exists because the framework is large and the maintainers want the discussion to happen in the tracker rather than in a pull request comment, and because a patch without a reported problem tends to arrive without the context needed to review it. The project says the source is hosted on github/qooxdoo, using the standard Issue Tracker and Pull Requests feature, and it runs a Discord server for chat. A contributing guide is linked as docs/development/contribute.md for people working on the framework itself.

Where qooxdoo is the wrong tool

The honest limitations are structural rather than bugs. First, the framework asks you to give up direct DOM access, which is a real cost for anyone who wants to drop an existing widget into a page, and the framework's own set of components and its data binding are the alternative. Second, the toolchain is a compiler with a bootstrap step, an IDE integration and its own configuration in Manifest.json, so a team without an existing qooxdoo setup pays a setup tax before writing the first feature. Third, the ecosystem assumption runs the other way from most of the web: the language is JavaScript, but the application model is closer to a desktop framework that happens to compile to JavaScript, and if your project is a content site or a React component, this is a heavy answer to a light question. What qooxdoo is good at is a substantial application with real UI, real data binding and a need to target more than one runtime from one source tree, and for that case the compiler-based design is the point rather than a quirk.

Editorial conclusion

Adopt qooxdoo if you want a full application framework with a GUI toolkit, data binding and a compiler that produces a deployable bundle, and you are willing to write against its own widget system rather than the DOM. Do not adopt it for a small project that needs a form and a fetch call, because the compiler and the framework conventions cost more than they save. Before you commit, read the Get Started Guide in docs, and run the stable npm release rather than the 8.0 beta, since the published version is 7.9.3 with the 8.0 line still in beta.

Frequently asked questions

What is the qooxdoo JavaScript framework?

It is a universal JavaScript framework for building applications across platforms. With its object-oriented programming model you build rich interactive applications, native-like mobile apps, lightweight traditional web applications or applications that run outside the browser, using an integrated toolchain and a GUI toolkit.

How do I install and start a qooxdoo project?

The README says it is easy to get started and points at the Get Started Guide in docs/README.md for details. If you are developing with qooxdoo rather than on it, the normal route is the stable npm release @qooxdoo/framework, which since version 6.0.0 contains the compiler and the CLI, invoked as npx qx followed by a command.

What is the qx command in qooxdoo?

It is the single CLI that drives the compiler and the toolchain, registered in the package manifest under the bin key as bin/deploy/qx. The npm scripts use it too, with the test script running node ./bin/build/qx test and prepack running node ./bootstrap/qx deploy --clean.

Can I contribute code to qooxdoo?

Yes, but the project requires an open bug in its issue tracker for every patch to the repository, and commits fall under qooxdoo's licence terms. Other contributions range from feedback and translations to providing a custom library, and the contributing guide is at docs/development/contribute.md.

Official sources

  1. Issues
  2. Project website
  3. qooxdoo/qooxdoo on GitHub
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/qooxdoo-qooxdoo.svg)](https://hysenlabs.com/projects/qooxdoo-qooxdoo)

Was this useful?