Some Updates for Zettlr in 2020

Some Updates for Zettlr in 2020

As 2019 comes to a close, it is time to look into the developments that will be prevalent throughout the year 2020 for Zettlr. Apart from huge changes "under the hood", a list of long-awaited features will be finally addressed!

Some Updates for Zettlr in 2020

Some Updates for Zettlr in 2020

If someone had asked me on Christmas 2017 what I would put into a blog post on Zettlr by the end of 2019, I would have probably answered “A requiem for yet another project that I abandoned.” That statement didn’t age well, did it? With 2019 coming to a close and just before the traditional media begins its awful spree of year reviews, it’s a good time to give you a short heads-up for what will happen next year.

A few days ago, I opened a new issue on GitHub outlining one huge project that I will tackle next year, as it has become indispensable to perform yet another code refactoring process. When I began writing the app, nothing was meant to be scalable. I simply hacked together some quick code to create a personal solution to my immediate needs. Now, two years after the initial release, the whole ecosystem has changed. Zettlr has an active community. Also, Zettlr is now boasting with features that aid dozens of different workflows by users all around the world. And “all around the world” isn’t even exaggerated — Zettlr is being used by researchers from Brazilian universities to mainland China. Some of the universities where I know people use the app are featured on the homepage. The app has been translated in a dozen languages and Zettlr has around 1,300 active users, probably more.

All of this also demands a lot more from me. While I could leave some serious bugs unaddressed for weeks before, now I need to take care that misbehaviour is addressed immediately. And Electron, the underlying framework of Zettlr, doesn’t help much. A litany of bugs and misdocumented behaviour keeps Zettlr from reaching its full potential, as several things simply don’t work the way they are supposed to be. But this is no reason to stop pushing forward. To the contrary, 2020 will be a year in which Zettlr needs to fully switch to professional operation mode. This will prove to be very hard, as my scientific career finally takes off and I still hold tight to the Open Source idea.

Indeed, it is an indisputable fact that Zettlr was, is, and always will be Open Source. Unlike Typora, which has been keeping its users in a free-beta-limbo for four years now, or the Markdown editor Notable, which recently was un-published from GitHub to prepare for monetisation, Zettlr refrains from such attacks on Open Science and Open Source. Being a researcher, this is personal. I can understand the reasoning of Fabio Spampinato, creator of Notable, but as I know the precarious situation within academia, this cannot be an option for Zettlr. It would be inconsequential to fight for Open Science on the one hand and then develop software that runs counter to that very idea.

So what will 2020 bring for Zettlr? For once, I will be tackling a construction site that has been ignored for too long now. The core functionality of Zettlr (at least from the perspective of the codebase) is the integrated file browser. It’s no replacement for Windows Explorer, macOS Finder or the Linux counterparts, but it offers some essential functionality to make Zettlr the workhorse you trust with your data. But this functionality touches exactly this: your data. If anything goes wrong, this might destroy a lot of work within milliseconds, so it’s a dangerous endeavour. Nevertheless, to keep the app growing with its duties, it is a necessary project. Several issues that are currently open on GitHub are blocked by the inability of the file system abstraction layer to properly integrate the wanted functionality, which is the main reason for why there’s so much inactivity on these issues. Everything that I’ve integrated in the past either improvised the parts that these features needed or could be built around the FSAL. But I somehow ran out of these “easy” issues, so it’s next on the list.

Additionally, a lot of chores are due — the server on which is hosted is getting too small, so we have to move; something that needs to be planned carefully. Also, a lot of the code that is responsible for the windows needs to be cleaned up to alleviate inconsistencies — did you, for instance, notice that on Windows the maximise button still shows you the “minimise” icon, even if it’s not maximised? All of this will be tackled next year.

So here’s the preliminary roadmap for 2020:

  1. Write a completely new File System Abstraction Layer.
  2. Implement code signing so that these ugly warnings on macOS and Windows go away.
  3. Clean up the repository, and address those minor nuisances.
  4. Move the server.
  5. Begin tackling all those open issues that rely upon the new FSAL.

This is a huge piece of work, but when we all work together, we can manage this. If you want to help, please get in touch via Twitter or drop me some lines at, and we can work together to make 2020 a great year for Zettlr. You don’t need to know how to code, the only required thing is commitment!

You’ll be hearing from me on Christmas as usual, as 1.5 is nearing, then with the long-awaited AutoCorrect features ;)

All the best,