[OffTopic] Use XULRunner/Zotero-standalone-build in 2023 for a new document oriented desktop app

169 views
Skip to first unread message

Antonio Calanducci

unread,
Jul 7, 2023, 6:21:10 PM7/7/23
to zotero-dev
Dear Zotero devs,

I am JS developer with the aim to start a new project, a cross-platform desktop application app, heavily document/metadata oriented (a health records management system). 
I have evaluated different cross platform application frameworks for desktop app development and in 2023 the defacto standard seems Electron. I was evaluating other framework such as QT with Python, Flutter, Tauri, Lazarus, etc just to mention some examples, trying to use real apps that uses those technologies and that I use everyday. So I realized the Thunderbird and Zotero both uses XUL, both with great user experience and responsivness.  However, from my researches it seems it's going to be abandoned by Mozilla and I cannot find good documentation on how to getting started.

As I understand, in the latest Zotero 7 release you are still using XUL and it seems you had plans in the past to use Electron but changed later your minds. What were the reasons?
If you had to start in 2023 to build Zotero 7 from scratch, would you choose XUL again as tech stack or another tech stack?

Sorry for the offtopic question and thank you in advance
Best
Antonio

Dan Stillman

unread,
Jul 8, 2023, 4:26:03 PM7/8/23
to zoter...@googlegroups.com
On 7/7/23 8:17 AM, Antonio Calanducci wrote:
If you had to start in 2023 to build Zotero 7 from scratch, would you choose XUL again as tech stack or another tech stack?

If we were starting from scratch, would we base Zotero on a tech stack that was official discontinued as an app framework eight years ago? No, we would not.

Antonio Calanducci

unread,
Jul 9, 2023, 4:24:10 AM7/9/23
to zotero-dev
Thank you for the honest answer. 
From some old posts I saw you had intentions to migrate to Electron, but in a recent one of the last month I read you had no plans to do so since years. What did held you back to go in that direction? I don't really want to go to the Electron route too and looking for valid alternatives. Other than Electron have you evaluated any other options?

Thanks

Emiliano Heyns

unread,
Jul 9, 2023, 10:49:41 AM7/9/23
to zotero-dev
Given that, may I ask why the Electron idea was let go?

Antonio Calanducci

unread,
Jul 10, 2023, 9:23:32 AM7/10/23
to zotero-dev
Before to motivate my answer, I have to say that even if I am a JS developer, I use to target mobile devices, using frameworks like Titanium and React Native, that unlike other frameworks (Cordova and derived) uses native UI (and widgets) to build a UI. So the first reason I would not like to use Electron on the desktop is that it doesn't allow to use the native GUI widgets of the target OS. Two additional reasons are the big final package size of the app and the memory footprint. 
I am not sure if XUL widgets are HTML/CSS based or native, but the overall experience of using app likes Zotero/Thunderbird is the same of native apps, with native-like widgets.
After a week of research, at the moment the best alternative I have found is to use Qt framework, in particular the Qt for Python, the could let me use native widgetset, using QML, a JavaScript-like language, to define UI and Python on the backend, and it provides hot reload for quick development cycle. 
Any comments or suggestions are appreciated. Thanks

Emiliano Heyns

unread,
Jul 10, 2023, 9:53:03 AM7/10/23
to zotero-dev
I've found cross-platform installs for python-based apps to be a pain to support. Maybe that's gotten better since I tried.

Antonio Calanducci

unread,
Jul 10, 2023, 12:10:10 PM7/10/23
to zotero-dev
yes it seems so, in particular recently it seems that Qt group itself has released a tool for easy deployment into a single compiled executable:


I have just run a simple hello_world.py GUI app and it produces a small single binary of 14Mb, with Python and the needed QR libraries included. I am a bit impressed.

Emiliano Heyns

unread,
Jul 11, 2023, 11:37:07 AM7/11/23
to zotero-dev
I don't think a switch to python would be feasible though. It would require a ground-up rewrite of Zotero plus it's entire ecosystem of extensions. 

volatile static

unread,
Jul 18, 2023, 4:27:39 AM7/18/23
to zotero-dev
For building multi-platform apps, firemonkey maybe a nice choice.
Reply all
Reply to author
Forward
0 new messages