December 2025 Update
Published on December 31, 2025 by Marcel Klehr
Hello everyone,
that was 2025, huh!? Temperature peaks were reached, political crises were experienced, celebrations were had, deceased mourned, newborns celebrated... and some new software versions were released as well: As 2025 is drawing to a close, I'd like to share what's been going on with my personal projects. Here is my update of what I've done with the time you have helped sponsor.
Bookmarks for Nextcloud 32
In Nextcloud Bookmarks land I've had the pleasure to adapt to yet another design overhaul in Nextcloud 32 (not that these are inherently bad, but I do wonder if they are necessary for each release..), and fixed some compatibility issues with PHP 8.4.
If you have ideas for or issues with Nextcloud Bookmarks, head over to github and file an issue and if you're a happy user already, you can give me a smile this Christmas season by giving it a review on https://apps.nextcloud.com/apps/bookmarks <3
Hello floccus v5.8
In floccus land, I've started publishing the v5.8 release series. The mobile apps now remember the last used profile and in the profile settings you now have fine-grained control over whether you want interval based sync, change-based sync or both. This is neat for use cases, where you just want to back up or pull regularly without taking into account local changes. Floccus doesn't get stuck on syncing in firefox anymore when you're waking up the machine from suspend. I automated a workaround for the "Failed to map parentId" error, in lieu of being able to fix it (I do know why it happens, by now, but more on that later): Previously, users had to notice that something was wrong with floccus, read the error message, open the FAQ, search for the solution (which is to reset the cache) and apply it. Someone suggested to just do this automatically since there is no other way out of the situation anyway, and that's what we're doing now. If floccus hits a mapping failure, it now automatically resets the sync cache and tries again. The drawback of this is that in some rare cases you can get back bookmarks that you had deleted, but none of your bookmarks are deleted in the process.
The killing of the workers
Now, why does this mapping failure actually occur? This has to do with a peculiarity of Chrome's new Manifest v3: Chrome defaults to killing floccus' background worker after a set amount of time, regardless of whether sync is finished or not. If you have more bookmarks than the average user, in the past this would mean that floccus just never finished syncing. I have adapted it to Manifest v3, of course: by now it persists the sync state regularly and can get up and running where it left off. Theoretically. But. There's always a but. If the kill came at an unfavorable time, it could happen that floccus had carried out a change, but was killed before the new state was persisted, which in the best case could lead to duplicates, in the worst case lead to the mapping failure on subsequent syncs.
I spent several months sitting on this problem, reading and re-reading documentation and obscure forum entries, always wondering how Chrome devs would think this as acceptable behavior. Eventually, I found a solution that avoids the killing of the background workers, by semi-regularly scheduling new macro tasks on the JavaScript event loop, where floccus previously carried out the whole sync process in one big macro task, which seems to have been what tipped Chrome to kill the whole worker. Phew.
Financial report 2025
I'd also like to give some transparency on the money I've received from many of you to help fuel all these efforts: Thanks to your generosity, throughout this year, I've raised, on average, 820€ per month (compared to 580€ per month in 2024, an increase of 41%), 34% of which came from recurring donations (an up-tick of 4 percentage points compared to last year). This helps cover development time for new features and bug fixes as well as support via Github and other platforms. My monthly goal is 1000€, which means his year, we've reached roughly 80% of that -- thank you!
As always, I'm very grateful for the support I've received from everyone of you in working on these projects. Whether it’s your donations, feedback, or words of encouragement, every bit helps to keep this project alive and thriving. You are a vital part of this journey! Thank you to all of you who continue to support me in these efforts!
Also, by all means, feel free to shoot me a message, if you have feedback, ideas, critique or just want to say hi.
All the best and godspeed to you, wherever you may be right now :)
Marcel