Xojo Web Alternatives

Xojo Web Alternatives

After expressing my frustration regarding what I perceived as the flawed development at Xojo, I received various responses from other Xojo users. Many of these responses had an undertone suggesting that alternative solutions also had their share of issues.

While this is undoubtedly true, it is clear that I am not the only one who has transitioned away from this tool after using it for an extended period.

Even long-standing employees are reorienting themselves. Sam summarized it here, expressing his sentiments as a longtime user:


Returning to the question of whether other tools are genuinely superior, I believe most are, in my humble opinion. However, it's important to note that you'll need to learn new frameworks (such as React, Vue, Quasar, etc.) and languages (like TypeScript). Not every Xojo user may be eager to do this, but they can consider using Vaadin, a pure Java solution, which offers an architecture similar to Xojo Web. Additionally, Vaadin provides the potential to write directly in JavaScript (through Vaadin Hilla).

Vaadin shares similarities with Xojo in many areas

  1. The documentation and examples are somewhat lacking in certain aspects.

  2. As a purely server-side rendering tool, the ability to efficiently and easily respond to events on the front end is naturally limited.

  3. For instance, there is no out-of-the-box toggle button. (I believe Xojo has it now, but it wasn't available when I was still using the tool.)

  4. Reduced business functionality.

But there are huge differences, as all those weaknesses can easily be solved for Vaadin, not so much at all for Xojo.

ad 1)
In the age of AI, this issue is no longer a concern. Both GitHub Copilot and JetBrains' AI provide assistance through examples and explanations, even if many users are not yet familiar with the current release, Vaadin 24. The suggested code usually functions well, which is often not the case with Xojo, partly due to their frequent re-architectures. YouTube videos and tutorials are another helpful resource. Similar resources for Xojo are either outdated, discontinued or never existed with that level of detail.

ad 2)
Vaadin provides Hilla, its framework similar to React, to overcome such challenges. With Xojo, you will unfortunately encounter a dead end.

ad 3)
This is not a big deal at all. Ultimately, a toggle button is nothing more than a checkbox under the hood, and you only need to design it to look like a toggle button. CSS in 2023 makes this very easy. When I created a custom "Xojo Web Toggle Button" back in 2021, it was fun but cumbersome. It wasn't as simple as merely applying some CSS to an existing Vaadin component.

ad 4)
This is certainly true for Xojo, as without paid plugins, the language has many limitations. With Vaadin, you have access to the full Java ecosystem, including the popular Spring Framework, JPA/Hibernate for easy database interactions, and more. Most of these solutions are free of charge. The entire Vaadin tool is available for free, and you can extend it as you wish. You only pay if you want to simplify your life, avoid reinventing the wheel, and receive constant security updates. Moreover, those paid additional components are well-crafted and work seamlessly.

These 4 short examples show that of course the grass is not necessarily greener elsewhere. But the lawn is mowed more often, it is looked after and modern tools are made available to you and you no longer have to plow your field with an ox, but can take care of your business and its implementation.

Last but not least: A question is often asked: why did you leave Quasar? Firstly, this is not entirely true, as I still have projects with Quasar, but most of the solutions I need require high data security, which makes Server Side Rendering (SSR) solutions more suitable. It is also a significant advantage for me to use only one programming language for both the frontend and the backend (and Desktop via JavaFX, etc.). With the Java libraries, I have a solution for all conceivable business challenges. This was all possible with GO and Node.js, but I would have to use another language, and these solutions are rarely as stable and performant as the Java equivalents.

Did you find this article valuable?

Support Jeannot Muller by becoming a sponsor. Any amount is appreciated!