Notesnook v3.0.7 fixes 15+ bugs via 42 commits. Themable title bar, logs are now stored in a SQLite database, 10x faster web app loading, and undo/redo buttons are back.
Previous releases:
v3.0.6
fixes an annoying issue where notes with no actual conflict appeared as conflicted.v3.0.5
fixes 10+ bugs via 37 commits. Improved conflict handling during sync, fixed web app on Safari, added support for duplicating locked notes, brought backCtrl + F
to search all notes, and fixed search/replace in editor.v3.0.4
fixes a critical bug with 2FA emails/SMS not getting sent during login. Everything else is the same as v3.0.3.
Themable title bar
We have added a new theme scope to independently theme the title bar in the desktop app. Here's how it looks:
You can also theme the individual tab items using the same theme scope.
Logs in SQLite Database
In v3, we migrated everything except app logs to SQLite. Unfortunately, in the last few versions users have reported sudden app hangs and other lag issues. This occured whenever the app tried to clear the old app logs which could be in the millions. The mobile app was most affected by this and issues like notes not saving also occured.
In this version, we are now moving the logs to SQLite fixing all these issues.
10x faster web app loading
I recently read brr's Engineering for Slow Internet and Dan Luu's How web bloat impacts users with slow devices, and decided to benchmark the Notesnook Web app on a throttled slow 3G internet connection to see how it performs. No surprise. There was a lot of room for improvement.
Our web app was taking around 1.5 minutes to fully become operational. That is not the nicest experience. The worst part is how it just sat there for 100 seconds stuck on the loading screen. Whenever something like this happens, the first thing to check is how the app is being bundled i.e., if there are too many or too few chunks, the loading times will increase dramatically.
In our case, the bundling was completely broken. We were loading a ~450 KB chunk upfront and then very slowly loading the other chunks almost sequentially. Notesnook is a PWA so, naturally, it uses a service worker to precache all assets for later loading. Unfortunately, it was precaching too many unnecessary modules causing a significant slow down for first time users.
The optimization was simple: slim down the bootstrap module & load the service worker as early as possible to load all the precached modules in parallel. An additional step was to break down a few big chunks into smaller chunks to ease loading (but that only helped a little).
The result? The web app now loads in 10-15 seconds on a slow 3G internet connection.
Undo/redo buttons are back
In v3, we removed the undo/redo buttons on desktop/web app (because there are keyboard shortcuts right?). On the mobile app, we moved them inside the drop down menu. After several user requests, we are reverting this change.
SQlite on another thread
In the desktop app, we were running SQLite queries on the same thread as the app. This worked alright for fast queries but caused significant lag for slow or too frequently used queries e.g. when editing the note. We have now moved SQLite to its own thread so it should no longer block the main thread when executing queries creating a much smoother experience.
Use native title bar on desktop app
A few users requested that they do not want the custom title bar with integrated tabs so in this release, we are adding an option in Settings > Desktop integration to disable the custom title bar and use the native one instead.
Fixed sync not running on window/page focus
We have fixed an issue causing the sync to not run when the app was brought into foreground either after minimizing or moving the focus away.
Fixed extra padding around images
This was reported early on in v3 but we couldn't get to it due to other more critical issues. This release fixes the bug and all your images should automatically appear correctly.