The open calendar, task and note space is a mess
stevenvanbael.com
stevenvanbael.com
* I wouldn't call Nextcloud codebase old. It's a PHP 7.3 codebase with sure quite a lot of legacy stuff but a lot of thing has been improved and refactored with the time. It's maintained, there is an active community and an healthy enterprise behind the project. IHMO this is that matters more than the programming language used.
* SabreDAV supports WebDAV and this is that we are using at Nextcloud for our webdav/caldav and carddav support.
* KOrganizer does run on Windows but it require to be built from source. I have been told that a better Windows support is being worked on for the entire PIM suite and I hope that at some point exe can be distributed. Technically there is nothing that makes it impossible to use on macOS, we just need more helping hands to help with fixing the platform specific issues. There is also a modern alternative to Korganizer being worked on called Kalendar. More on it can be learned on https://claudiocambra.com/ (Disclaimer: I was the mentor of this GSoC project).
I've loved KDE since I was an almost broke student 17 or so years ago.
I also use NextCloud now to sync Joplin, and I contribute to other projects (mostly donations, some code).
The calendar is really the main reason I use Nextcloud at all. The web UI _was_ the best calendar UI I had used but the recent rewrite set it back quite a bit. I've been following the bugs related to it but the UI designers seem to think that pretty is better than functional.
Nextcloud calendar does work great as a source of truth. I share calendars to Android devices (via Davx5), iPhones, and calendar clients like Thunderbird. It all just works great.
This applies to 95% of all modern software. Optimise UI for looking (subjectively) pretty in screenshots.
I used to teach Human-Computer Interaction, and it was exciting to me when many companies started hiring UX designers. But ultimately it was disappointing because especially in consumer products it seems like product managers prioritized hiring folks with strong aesthetics even at the expense of fundamentals like usability and research.
I wasn't familiar, but this site fits the comment better, so I assume that's what was meant.
We were on top of the world, now the world is built on top of us.
(Personally I like designing expressive/extensible products, so that constrains me to working on tools for professionals.)
At least in my experience, making products for non-professional power users presents a few challenges. First off, you can't charge much for a product that isn't a professional tool. At the same time, power users are (initially) a niche segment so in order to support a development team you probably need something that will appeal to a broad audience. But designing a product that works well for a broad audience and for power users is harder (=more expensive) than focusing on one or the other. It doesn't help that power users can be more demanding in terms of support and feature requests than average users.
My experience is that power-user features often get nixed not because any one stakeholder doesn't like them -- often internal folks are themselves power users and think it would be pretty cool -- but because it's often harder to make a good ROI argument for building and supporting power-user features compared to features for the average user.
It's a slightly different case, but I remember noticing that, when Google retired Google Reader, the perception of Google in media and on tech sites seemed to go bad nearly overnight.
Besides the argument that power users can become evangelists, the other argument I've used in feature prioritization meetings is that power users can provide significant utility to the whole user ecosystem by sharing the customizations and extensions they've developed with average users.
Having said that, these kinds of features rarely make the cut, and even when they do they're often not as obviously successful as I would have hoped. With respect to the benefit of power-user "evangelism" that's hard to measure. It's hard to measure whether $400k for a few power-user features or $400k in average-user features ends up resulting in more paying users.
Basic support for already existing web client functionality. For instance, I shouldn't have to sacrifice the ability to open a link in a new tab, or sacrifice the ability to link _period_ which is commonly the case (which interferes with bookmarking, etc). I shouldn't be logged out or yelled at by an app for hitting the back or refresh buttons on my web browser.
Most of these things are reinventing the wheel. Just for prettiness they'll break a basic browser functionality, then they try to re-implement in their framework and it just creates an abstraction layer on top of an abstraction layer, creating unnecessary bloat.
Many times this is even just so they can show you a blog post, which is just text and some images. I shouldn't need JavaScript to see that, especially if I don't know you or trust you. Even Google AdWords has had malware injected in its JavaScript, a blogger is not going to be worth my time to read if I have to trust his code isn't malicious just to see what he has to say about an obscure fruit.
- Information density. This is especially a problem with communication tools, which for some reason are all copying Slack and leaving very little screen space for the thing you actually want to see - the text that the other person is writing. Messages go off the screen very quickly and a lot of screen space is spent on decorations (user icons, names, speech bubbles, padding) leaving it with basically the density of comic chat. Graphic background images with semitransparent visual elements on top are another similar trend which uses a lot of padding to not obscure the background too much, and the transparency makes contrast and readability worse.
- Affordance discoverability. Many modern user interfaces have a lot of functionality hidden behind catchall elements like a user icon, a gear icon, or a hamburger menu. This may be a misguided attempt to make the user interface "cleaner" but it makes it very difficult to find what functionality is available unless you go exploring. This is especially bad for context-dependent functionality because there's no visual indication that the hidden contents of the catchall have changed.
- Delineated targets. A lot of modern designs have flatness as a design concept, meaning the click or tap targets are not clearly separated from the static parts of the interface. This makes it hard to know that they are targets (as it's common to have nonclickable decorative graphics too) and hard to tell where exactly they start/end so it causes extra cognitive load in order to hit them precisely.
- Non-gigantic targets. This is related to the low information density mentioned above. More and more designs target smartphone displays, which used to be very small and require big targets to ensure they could be mashed with normal human fingers. However, this gets reused on tablets, modern gigantic smartphones, and even desktop, where none of this makes sense.
- High-contrast targets with identifiable icons. Low-contrast or monochrome targets have become fashionable. Clickable items often have simplified, highly abstracted icons with thin-line monochrome content, frequently implemented as fonts, which is less distracting from the visuals of the design but is also hard to understand what it's supposed to represent. Another common one is having said elements in grey on grey, making them very difficult to read for people with less than perfect vision.
- Less modality. Many modern designs will have modal interface elements that prevent access to the rest of the user interface until interacted with and/or dismissed. The "blur the content and put a tiny dialog with a huge button in the middle" is a common tactic, and is often user-hostile nudging trying to get the user to do something they don't really want in order to get rid of the thing that is literally blocking their access to whatever they were actually doing.
This is basic human-computer interaction design stuff, but somehow it's all gotten lost.
Users still have to explore, even more so, in complex interfaces where a lot of options are presented. They don't know what each option does and there's so many of them.
And even the classic desktop apps have a lot of functionality hidden under the File/Edit/View/Insert/Tools menu bar. If they are not designed carefully, they are just hamburger menus with confusing labels. I'm looking at one right now. Why is "Find" under "Edit"? I don't want to edit anything, I just want to look for something. Is this action destructive? I took a risk and I pressed it, but luckily it is indeed just a search.
It's also a problem in physical interfaces like a computer keyboard. There's dozens of buttons and yet there are many hidden interactions between them. What does "Home" button do? Will it take me to my home screen? My home page? Let's press it. Oh, it just scrolls up.
Unless the options are severely limited or the users are trained, exploring can't be avoided - and it's not a bad thing.
> More and more designs target smartphone displays, which used to be very small and require big targets to ensure they could be mashed with normal human fingers. However, this gets reused on tablets, modern gigantic smartphones, and even desktop, where none of this makes sense.
It does make sense on the gigantic smartphones and tablets. The size of the viewport doesn't matter. The size and the precision of the pointer device does - and my finger didn't shrink.
> Clickable items often have simplified, highly abstracted icons with thin-line monochrome content, frequently implemented as fonts, which is less distracting from the visuals of the design but is also hard to understand what it's supposed to represent.
Here's a screenshot of LibreOffice Calc with a classic skeuomorphic icon set: https://i.imgur.com/TO7mHEg.png Let's ignore the poor contrast caused by the dark background for now. Can you tell me which icon is responsible for Search?
It should be the one between the printer and the scissors - it has a magnifying glass after all. Turns out, it's Toggle Print Review. Search is actually in the middle of the row between Redo and Spelling, labeled as Find and Replace. It looks more like a microphone to me.
> Less modality. Many modern designs will have modal interface elements that prevent access to the rest of the user interface until interacted with and/or dismissed.
There's a time and place for this, especially if it's something important. For example Exit Without Saving confirmation modal in BIOS, which is several decades old.
I agree with your other points. Chat apps are getting worse. Discord has even shrunk the text area where you type your message.
As for the size of clickable items, I consistently see interface elements that span the full width of the screen (except some padding) on modern giant-screen smartphones and tablets. It seems the screens grow and the UI elements grow with them, rather than remaining fingertip-sized. And of course none of this has any place on desktop, but it gets reused there anyway.
I guess it's easier to design once and ship everywhere. Although with tools like Tailwind there's no excuse to ignore different viewports these days.
There's also a related problem with text stretching the entire window, like on the Wikipedia.
Just give me a big button with a goddamn gear icon every time.
Lately I'm a big fan of omni-search bars that search not only across the files, but also options and menus. Like the one in Sublime Text on Jetbrains products.
> This is basic human-computer interaction design stuff, but somehow it's all gotten lost.
Indeed, probably because people who design the interfaces no longer care about carefully studying human-computer interaction, or apply the knowledge of decades of research in this area.
I just can’t comprehend why anyone thinks it’s a good idea to imply an area is a button and then not make it act like a button. It’s not even like they don’t have multiple ways to make whatever element they use to contain/apply the colour clickable, it’s just bad design!
I agree with most of what people have written, but I think the two biggest gaps are:
First, understanding the target users and their goals, tasks, skills, context of use, performance, etc. When interviewing designers I'm regularly surprised how many of them have been working in the field for years and have a beautiful portfolio and yet when I drill into their process they seem to have spent surprisingly little effort understanding of the human on one side of the interaction.
Second, usability tests with a representative sample of the target audience. (Along with an organization that has the humility to accept when a redesign is unsuccessful.) If you do nothing else, do this. Even the best design groups I've worked with produced nearly the same number of beautiful-but-bad designs as the worst ones. The difference was that the former had the humility to accept that the design missed the mark and continued to iterate whereas the latter was often willing to ship anyway due to misplaced confidence, strict deadlines, or a CEO with a Steve Jobs complex.
With respect to things like whitespace, information density, hit-target/button size, modals, adherence to platform standards, up-front complexity vs hidden actions, icons vs words, customizability, etc those can be good or bad depending on user and context. The real problem occurs when a designer attempts to substitute their own gut instinct to compensate for a lack of understanding of their target audience. The mantra often repeated at the design program where I worked was: "The user is not like me."
Having said that, the shift in favor of visual/aesthetic designers does seem to be somewhat recent. My impression is that companies scrambled to hire interface designers when good interfaces became a selling point for consumers, which led to a lot of graphic/print/visual/web designers switching over to UX, and some of those designers never got around to learning about the rest of UX. Whatever the reason, there simply seem to be more designers these days who operate as if the most important aspect of a design is how it looks.
Examples in different categories as I don't use Nextcloud:
Do Firefox designers for Android use Firefox on their phones as their only browser or they use Chrome and don't understand how their new UX added too many extra taps and/or complications?
On the other side, the designer of new K9 is the original developer and I'm pretty sure he uses K9 daily. I and many other people just happen to use the app in a very different way than him and many others. The new app optimizes one workflow and inadvertently destroys the other. At least I understand that even if I had to go back to the old version (no security bugs there at least.)
Also, the complains about how design and UIs are getting worse, remind me a lot of the "the youth of today" complaints that can be dated back to Plato. There was plenty of absolutely horrendous UIs around at every time. Also, just because it looks good, doesn't make it bad UI (plenty of people seem to judge like that).
That's another thing, material design interfaces are also ugly as sin x)
>This applies to 95% of all modern software. Optimise UI for looking (subjectively) pretty in screenshots.
Hard to blame them - most people make the decision to evaluate/not evaluate software based purely on how it looks.
I wrote an interactive GUI app in Lazarus that had almost instant (less than 20ms) responses to any user action (click, enter, typing, chart-rendering, etc). My manager complained that it looked dated and asked why a WebApp couldn't be done instead :-/
On the web site if I set an email reminder for an event, it works.
On my Android, if I set an email reminder for an event, it pretends to work, but then sets only an Android notification. No idea why, but there's no way for me to actually set an email reminder from Android.
I much prefer email reminders - I get so many notifications on Android that my brain just ignores them - email is something I actively work on and I can't dismiss it as easily. Because of this, I still have to enter all events using the web site, sadly.
Incidentally, setting the Nextcloud site to send email reminders was a ridiculous pain. I somewhat agree with the author - I still haven't found a self hosted calendar solution that works and syncs properly with Android.
Ironically the integration between Outlook and SharePoint is rudimentary and will also fall back to using iCal files. At least I never found alternatives. Apple has some troubles consuming them I believe, but I think it was only about some details (repeating elements or something like that)
If you could get Kmail/Kalendar to speak Exchange EWS or the like easily then you might unlock a lot of "enterprise" users. I use (Gnome) Evolution EWS on my KDE desktop.
Unfortunately these were only merged in the master branch and not the bugfix branch so that they won't be available to the users before december.
It pointed out I don't need a password because I'm already connected to the domain via Kerberos - nice.
I doubt the general experience would have been as smooth had it not been a PHP "app".
Top notch software! Highly recommended.
- Source of truth: these are text files, so any of git, nextcloud, syncthing etc. will do.
- Consistent interface: using emacs might be tough on mobile, but there are some pretty good web interfaces for it [2]. I personally use Orgzly [3] and syntching on my Android
- Standard protocols: custom scripting does anything. ical is pretty easy to handle, not sure about webdav.
- FOSS: check
- Multiple calendars: yep, via Org agenda [4]
- Subtask support: As deep as you can go
- Custom logic: via emacs scripts (or some creativity if you're using other clients)
- Markdown notes: yes, minimal differences between org mode and markdown
However, some limitations/ drawbacks.
- org-agenda is slow and completely unusable if you have hundreds of org files.
- despite multiple half-baked efforts there is still no easy-to-use parser and pretty printer for the lanuguage. I'm not even asking for 100% of the syntax, 20% capability of t he built-in org-element API with good documentatiom will accomplish 80% of the requirements.
- no easy way to integrate calendars and org-agenda with something like a calDav server.
It would be great to have something like this.
I have a system which can at least handle invitations to events by means of a python script that convert iCal files to Org-style headers. It is triggered automatically via inotify so that every time a new iCal file appears into a specific folder it is appended automatically to an Org file. Now I simply save the .ics that comes attached to event invitation emails to have the time slot booked in my Org agenda automatically.
I create a new org file for each client, plus a few extras, and so at this point I have (ls -al | grep org$ | wc -l) 86 such files.
I could speed it up by doing more archiving, but it's useful to have history for long-running engagements in the main file vs the _archive files.
I may decide to move moribund/closed engagement files to a subfolder for cold-storage, but then there's the out-of-sight, out-of-mind problem.
OTOH, I never ever print from Org, and I use Exchange for calendaring, so the other two points aren't a problem for me, at least.
The most common mistake I make is having caps lock on and hitting J a bunch which merges all the lines together.
> The most common mistake I make is having caps lock on and hitting J a bunch which merges all the lines together.
Oh that happened to me as well one day, it was catastrophic! I did not realize I hit J on a folded header (which joined all lines in that section) before saving and quitting at the end of the day. I only realized the mess on the next day.
I wrote a blog post [1] on how I solved it, if it sounds interesting.
[1] https://e-dorigatti.github.io/phd/2020/08/27/lost-notes.html
I fly into a panic because "U" doesn't do anything and Spacemacs binds "K" to some sort of manual lookup
Deeply stressful experience
This is frustrating enough that I'm always kinda low-key evaluating other systems, like Obsidian, that have a better story for mobile.
Has that improved? It seems fine if you do everything from the CLI (or similar), but emacs is a little difficult to use on a phone.
Everything essentially just said "use emacs, that's the only implementation and the only spec". So I tried orgzly for a bit (it's handy), but ultimately decided it's a "hard no" for things with only one impl.
0. https://orgmode.org/list/CA+G3_POBAB1QX1Zv8q9sjFh4KHUHVmaNXp...
[0] https://github.com/200ok-ch/organice
[1] https://github.com/200ok-ch/org-parser/blob/master/resources...
[2] https://github.com/kristijanhusak/orgmode.nvim/issues/31#iss...
I've fed these to a custom NewTab extension and that has been a huge win for me. I make a new tab like every five minutes so it's always visible.
It IS a MASSIVE investment in time and effort to learn something that will appear as an obstacle MONTHS before it becomes second nature. Plus you spend the rest of you natural life fussing with your .emacs file.
Do you guys not see the problem? :-)
makes it possible to actually be productive with org-mode within an hour.
I feel like of all the tools I've learnt to use, Emacs has had the greatest return on investment.
"Confusing terminology and lack of conformance with CUA" (aka. being older than both CUA and modern terminology) is perhaps a stumbling block for some, but arguably not that big once a wannabe-user decides to extend their attention span beyond 30 seconds.
There is value in standardisation, and it's unlikely that the current starter Emacs layout provides any unique value other than letting 40+ year old industry veterans keep their muscle memory, while alienating basically everyone born after the age of the monochrome glass TTY.
While I understand that using or not using Emacs is not a competition, it almost appears that Emacs tries to be different for the sake of being different. Just like Mac OS uses the Ctrl+PgDn/Up/Arrow shortcuts in a way that contradicts what virtually every other platform does (including Windows and Linux).
Edit: do not misunderstand my point, I am not saying that Emacs is trying to be different for the sake of being different. I am saying that remaining the way it is, on purpose, when the majority of the world expressed a preference for a different convention that comes with no clear downsides, makes it look as if that were the case. Or makes Emacs look recalcitrant, if you prefer.
Emacs conventions existed long before CUA became the standard and to adapt to CUA would require Emacs to change some very basic and critical conventions. There were plenty of word processors like Word Star that also featured its own conventions, just Word Star has mostly become an esoteric word processor while Emacs and Vim remain prevalent to this day (I mean... they're still esoteric but not that esoteric).
MacOS also has its own conventions that don't comply with the "standard" which of course, again, came after MacOS established its own standards and of which are superior to Windows, anyway, since it doesn't break compatibility with the unix terminal.
Maybe the real issue is Windows and Linux that decided to adopt the inferior conventions of the dominant OS?
Conversely, just because CUA became the de facto standard in Windows and Linux doesn't make it good, either. They became standardized as a consequence of Windows becoming the most popular operating system and the only reason you're advocating for it is because it's what you are comfortable with, not because it has any meaningful advantages over other keyboard shortcut paradigms.
Try 5 minutes then :). No, I'm not joking with this, nor am I trying to be snarky. I've just seen the way people approach new tools, and I also know myself. Most of the time, people can barely give 30 second of serious effort before judging something as "okay" or "too complicated" - at least as long as they view the new thing as something they already know. "It's a text editor, I know text editors, I shouldn't need to learn anything new here".
Once you drop the assumption that you already know Emacs because you know the product category it's purportedly in, it turns out the conventions and keybindings aren't really that hard. The manual and the tutorial do a good job explaining them, and there's always CUA mode to be used as training wheels :).
(For me, the biggest hurdle I faced when learning Emacs was to unlearn using arrow keys for navigation - which really has nothing to do with Emacs per se; you need to do that for any editor in order to use it efficiently.)
As a point of comparison, imagine approaching Emacs like you'd approach Blender or 3DS Max. In my experience, there's less complaints about weird conventions there, because newcomers to 3D graphics don't assume they know the whole tooling space just because they tinkered in Sketchup in the past.
(And that's not to say Emacs isn't full of legacy cruft. It's just that the legacy cruft that's really holding it down is not the things newcomers complain about.)
This is why emacs is a niche application in a niche world, and is likely to remain so.
It's crazy powerful, and I have made OrgMode my organizational home for a long time, but I don't pretend it's a good fit for people who aren't already very nerdy. (Honestly, at this point, if a person with no development background expresses curiosity, I send them to Obsidian.)
It's worth it.
There is an iPhone app for org-mode. It's free as in both. It's called beorg and it works great. Syncs org-mode files over iCloud and let's you edit them via a touch interface. Supports a very big subset of org features.
I've given up on true iOS access to my org files except for must-do situations, and then I just use Editorial or Byword or some other iOS editor pointed to my Org folder in Dropbox. For capture on the go, I mostly use built-in notes and reminders on the phone and just port the data over later.
> - Consistent interface: using emacs might be tough on mobile
> - Custom logic: via emacs scripts
> - Standard protocols: custom scripting does anything.
Huh?!
What kind of fantasy world are emacs devotees living in? No "normal" or even half-normal user is going to spend hours on "scripting" just to see their calendar, nor are they going to put up with mobile as anything other than a first class platform. For a lot of people, mobile is their only platform.
You can check out history in the making yourself here: https://news.ycombinator.com/item?id=8863
I think this is what I was remembering.
I referred to it myself yesterday (https://news.ycombinator.com/item?id=28359928) in the latter sense, and I hope nobody would read that as me being a jerk or attacking BrandonM or anything. I just see it as an 'historical' example of something we can learn from; in the same way as you could learn from some great statesman or general's mistake or whatever, without it tainting your image of the person or being an attack on them.
I suppose most of the jerkier ones get flagged away, meaning I mostly don't see them and dang mostly does.
I've been using lately [logseq](https://logseq.com/) and it's fantastic. Has the features I love from Org mode, plus what I like from Workflowy, stores the data in plain text in Markdown and supports cross references, images, and more.
I love it.
This post was written several months ago and in the meantime I have given up on trying to cobble something together using existing solutions because they don't provide the extensibility that I want.
I'm building my own replacement from scratch focussing on tasks/projects/calendars first. The architecture is a postgres db exposing CRUD API endpoints and all changes are broadcasted over MQTT so I can easily hook into everything for automation and extension.
I have a desktop application in JavaFX and a mobile Android app so I can use Kotlin as one language across all clients and backend. Lots of code sharing going on for things like API models.
This turns out to be very hard to do based on CalDAV/WebDAV protocols because many clients and services implement the spec differently or only parts of it.
That's why I switched my approach and I'm writing my own backend storage layer that has my desired event system builtin on that layer (Using Kotlin/JVM for the backend, postgres for storage and MQTT for pub-sub to events). On top of that storage/api layer I'm building CalDAV/WebDAV support so external clients can connect to it.
Having my own HTTP+MQTT API makes it a lot easier to build modern clients as well. In fact because I chose Kotlin/JVM as my baseline and have already written a pure Kotlin client library I'm making a lot of progress on both desktop, android and cli tools to interact with the system.
I'm not sure about the android/desktop apps. I might keep them commercial for a bit to experiment with an open-core monetization strategy.
Give me a couple weeks to iron out architecture details and write some design docs and then I'll publish the project on GitHub. Shoot me an email if you're interested.
Isn't that what WebDAV is?
Consider a haircut that will take 45 minutes & will invite two people (me & the barber), but the day/time is still undecided. Perhaps that sort of appointment can park at a placeholder date with infinite capacity until the real date is scheduled?
> Does not handle authentication by default, needs to be handled by the reverse proxy
My Radicale instance validates users on its own, using credentials in an htpasswd file with bcrypt hashes. Doesn't that count as authentication?
Closed source, expensive, designed to be supported by professionals, you might need more than 1 server/VM to run them all, requires AMD64 processors.
Well tested (used by millions of people every day), relatively secure, not terribly hard to setup (follow installation guide / best practices documents carefully, and you should be fine).
AS is, I've never found it super useful. j
https://support.microsoft.com/en-us/office/search-for-tagged...
I'd want to a collated set of all the items marked as "to do", ideally with due dates, in a "virtual" page or view of the data.
"If you want to view the tag search results as a notes page, click the Create Summary Page button at the bottom of the Tags Summary task pan."
But I want to move away from it because I want to 1) gain control over my data and 2) extend the system with automations.
Thats why I started researching open source and self hosted alternatives.
Also, it could be worth to add Calendso to the list. Quite new project with a bit bigger scope than Sabre/Radicale. WebUI, recently added CalDAV.
Part of it is down to the failure of micro formats and the semantic web, but it would seem like with today’s technology it wouldn’t be to hard for a browser extension to recognize an event and automatically extract the correct details (title, place, date, time).
It's not a failure of the semantic web, but more a failure of no one creating a shared calendar like that. (And Facebook not giving API access to calendar events).
So I added all the games by hand, and a few weeks later, the entire second half of the season was rejiggered.
I route my remote calendars through Cloudflare workers for a modicum of privacy. It's as simple as running a basic open source relay and prepending the worker URL: https://github.com/Zibri/cloudflare-cors-anywhere
What's "via"?
I have done event feeds in both, but never together.
I also had a shared calendar with all of the events for my lab synchronized.
I don’t think this is open calendar because it was Google, but it made events pretty seamless.
Add Calendar > Browse Calendars of Interest.
The gym I go to also publishes their calendar as a google calendar I can subscribe to. So maybe it's more of the adoption concern that the GP is highlighting.
Sure it might work if you just pick one venue, or a handful of artists. But it's not particularly helpful since you'll either be overwhelmed by spam (venue shows you're not interested in) or you'll inevitably be missing out on a lot of great events (since you're filtering on very specific parameters).
On our app, you can swipe on any show to add it to your phone's calendar instantly. 60 seconds daily or a few minutes each week and you can build your own subset calendar from our already curated calendar. It's honestly very efficient and low-tech.
I do subscribe to some remote calendars like my favorite sports team (NBA provides per-team calendar URLs). If you're in a smaller town with just a few venues, I bet you could do that too. For the privacy-conscious among us, you can always route them through Cloudflare Workers pretty easily.
When viewing the website on my desktop computer(mac OS, Firefox), the "add to calendar" functionality that you mention being in the phone app is not, so far as I can tell, available. Perhaps I missed the button?
I think a lot of this comes down to walled gardens kicking out formats from being developed. If we had a standard for event announcements, I think we would have had a chance.
In my experience (using iOS + macOS) they're pretty common and always work. What kinds of failures do you see?
There's a few music apps, but they focus only on the audio. I wish there were a combined app for managing everything together.
Listening to music (Spotify, YouTube, iTunes), keeping track of what music I've listened to (Last.FM, iTunes play counts), making playlists (Spotify, YouTube, iTunes), organising playlists into folders (iTunes), syncing music to devices offline (iTunes).
I hear about bands I like being on tour (Facebook, band websites, posters), I buy tickets (Ticketmaster, LiveNation, trains), go to events (iCal), take photos (iPhoto), and keep track of the bands I saw live (Excel).
At those events, I buy physical T-shirts, hoodies, posters, and CDs, and get them signed by the band when possible (NFT, Wise, bank cards, cash). I meet other fans while waiting in the queue, and exchange contact details (Contacts, Facebook, WhatsApp, WeChat, LINE, KakaoTalk, iMessage). I then see the other bands that friend likes (Facebook) and check out their music (Spotify, YouTube, iTunes) and the cycle starts again.
When I listen to a song, my mind still makes connections to the memories of that time I crowdsurfed while the band played it on Warped Tour '08 in LA during my exchange programme to California. Having software that could help me create the links to organise all those memories would be wonderful. It doesn't exist yet though, from what I can tell - so I hope someone will write it!
It's because of advertising.
Artists, venues, teams, theaters, charities and other performers may themselves not care - they make money on you being there. But everyone else between you and the event, they make money on your attention. They explicitly don't want you to streamline or automate event discovery and attendance scheduling. They want you to visit their pages, and be exposed to ads (whether it's regular ads where they get paid per click, or ads for different events with which they make money on you deciding to attend).
The "attention economy" is, by definition, built on making everything inefficient and full of hassle. To monetize attention, you have to make the users pay it first.
This may be an tired point, but I feel it bears repeating. The problem isn't one of technology - the tech for what you want exists, and actually worked much better in the past. The problem is businesses: they actively don't want you to use the Internet in this way.
I used to run an events tech listing site and we had an export/share box with various feeds, filtered or otherwise. We heard anecdotally that many people just imported whole feeds, in ical or rss formats. One company used to pick events into their company calendar and we had a "add" button that worked just fine for them.
There is a comment about commercial interests - that can be one problem. I said "anecdotally" because it's pretty impossible to get accurate usage figures with a lot of this stuff. I decided that counted as a minor inconvenience for my use case and did it anyway as I thought it was the right thing to do. But I can see in some companies that would be a hard sell. I suspect that's why some people end up with "Give us write access to your google account!" solutions. (I always say no.)
> Why can’t I just click a button and follow all the local events for my favorite artist/venue/team/theater/charity?
Having moved on from the tech listing site, I've now got a side project that is trying to do just this. It's at https://www.theoccasionoctopus.net/ I don't know whether to sell it as like Twitter for events? Basically you follow accounts that interest you, these accounts promote events they thing are interesting, any you also think are interesting you can copy to your own account/calendar. I'm working on it slowly but it's already useful for me, so that's fine and I'll just carry on.
But the real problem here is getting people to publish any kind of structured data on event listings.
There was one event organiser I used to follow; they had events with schema.org markup on their site. It wasn't to hard for me to write a small Python scraper bot that got the events and added them to an account/calendar in my app via it's API. But then they redesigned the site and lost the schema.org markup! I actually know the dev team on this site so I kept asking them to put the schema.org markup back but they never did. It went on their backlog and I guess just never became important enough.
There are some other event apps working on the same kinda thing as me and I support any of them that have open data feeds - anything to show people there is value to providing open data feeds is good.
Because it costs time and money to collect and maintain those data. And you need a proper technical solution to let other use those data in a meaningful way. Usually it busts at the second part, because either the people have not enough time or expertise to offer exportable data; or it's not in their interesst, as they earn money from presenting them to the users.
The whole self-managment-space sucks because everything is so one sided. Other people must do something and offer something to make it work, and we as the users have little to no way to make things work from our side with little to no effort/expertise.
The real joke is, there are all kind of specialized solutions and ugly hacks from users to make things work. But all of them are isolated solutions. What we might need is a gamechanger to empower the users, simplifying automation of those things from our side. Home Automation has it's vibrant community with home assistant, node-red, etc. Why does something like that does not exist for work automation? IFTTT&Co. is the best we got so far, and those are commercial solutions running in the cloud, not in our homes/desktops.
> Written in old PHP and there is work underway to do a complete rewrite in Golang
I will never understand "the big rewrite" philosophy, no matter how many times I hear it.
Are some languages better than others in some aspects? Yes, but:
1. if you think that changing language is the only way to make a codebase secure, then there is something wrong with your security practices.
2. if you think that rewriting in another language is the only way to improve code quality, then there is something wrong with your software development practices.
3. chasing "the hot new thing" is a never ending cycle.
Choosing something like a calendar client based on what language it's written in, instead of its merits as a client, is such a ludicrous concept.
This wasn't just hatred of PHP (its a C like syntax. low barrier to entry) -It was about OLD php. Depending, formally (it may work on new PHP but it isn't clear. it might use deprecated language features or side-effects which dont work that way any more in newer language platform) on the old language spec can be a nightmare.
Plus, if its in a language you don't "like" then local mods are harder.
Would you e.g. run a Rust binary, if every other dependency you had was in GO? Or, APL, if nothing else you ran was in APL? Some choices about language make sense, if you consider the full ecology of running a service on a host.
https://www.php.net/supported-versions.php
Edit: Also the docker image is updated to PHP8 for NC22: https://github.com/nextcloud/docker/pull/1563
You can keep software up to date without rewriting in another language, which is what Nextcloud did by the way, as it runs perfectly on my box with PHP 7.3.
You're arguing the specific, I'm arguing the generic: it is possible to wind up in a place where your old code won't re-compile, or run.
OP is going to be in for a world of hurt trying to find a solution, there's a reason why all these libraries are in 'old PHP'. Most of the big companies have 'Appified' their APIs with calendars, and the old .ical etc formats are there for legacy support. So you need to create an app, delegate it permissions and then you've got a REST API to play with. If you've got the skill to do this, you'll have the skill to write a syncing script.
And perhaps more importantly, a lot of developers hated working in PHP, and switching languages increased developer satisfaction.
Yes, it is possible to make secure, quality software in PHP, but it is more difficult than in many other languages. If making your app secure and higher quality requires substantial refactoring, or the marginal cost of maintaining security and quality in a PHP app is sufficiently high, switching to a different language could very well be worth it.
In the case of Nextcloud, my educated guess is that none of the above conditions is true.
Huge world of "groupware" software around. Think Zimbra. Owncloud is hardly the only choice here...
By dropping iOS as a requirement, Kotlin/JVM is feasable again for all my personal target platforms and I've decided to use that as the main language for my system.
It's 2021 and there are 3 major desktop and 2 major mobile platforms, plus some smaller ones on each side. And then there is the Web, which is both mobile and desktop focused.
If you're going to write a new library that you want to use on all of these platforms, you need a programming language that works on all of these. For iOS Java is a non starter because as far as I know there is no proper JVM that can be used in App Store apps. C can target all these platforms (including the web using WebAssembly) but it is a major pain to setup the tooling for every platform, especially if your library needs complex dependencies for things like SSL.
I am not a Rust zealot that advocates rewriting everything in Rust. I only mentioned Rust once in the whole article so your "obviously" comment doesn't really hold. The reason I mentioned Rust as a language for my project is because it is one of the modern languages that have cross-platform building and dependency management builtin from the start. It is a lot less work to write an SSL-enabled library in Rust that can be used on all these platforms than it is to write one in C.
I am assuming the only ways are without a JVM, like what Scala does.
> C can target all these platforms (including the web using WebAssembly) but it is a major pain to setup the tooling for every platform, especially if your library needs complex dependencies for things like SSL.
You mean dependencies for things like "a specific SSL implementation in this language" which happens not to be in the platforms where you want to ship. If you use the system SSL implementations, then you don't have this problem.
> I only mentioned Rust once in the whole article so your "obviously" comment doesn't really hold.
"Old language" and/or "unmaintained" are basically in the Cons section for every server package, even when they've had releases within the last year! And then the conclusion goes to mention the need to do something "modern" (I hate "modern" used generically like that) and goes on to only mention Rust...
> The reason I mentioned Rust as a language for my project is because it is one of the modern languages that have cross-platform building and dependency management builtin from the start
"dependency management" here probably means bundling an SSL implementation with your package, of course. Not only you are doing a disservice to everyone except for yourself by doing that (since now your binaries have an effective expiration date, they don't respect the system's certificate stores, etc.), but it is also against the advice of the 2 mentioned mobile platforms themselves, which recommend using their native SSL rather than bundling (e.g. NSStreams for iOS, and Android ... well, Android's official API is still Java...).
And the problem is, if you were comparing these languages and said "oh, it's more complicated to use than the preferred languages in iOS and/or Android", I might agree. But comparing it to Rust, however "incredible" tooling it may have...
Sure but Kotlin is used in many apps and compiles to iOS natively.
These are by far the best note and calendar apps I've used. Far better than Google's options. Apple's reminders are a bit better than Nextcloud Tasks, but the only feature I'm sorely lacking there is repeating tasks. Google doesn't support this either, which leads me to believe that it's a shortcoming of the CalDav spec for tasks.
I also find this to be true of email clients. GMail reigns supreme, but there is pretty much no email client out there that is:
- A good UI/UX
- Doesn't store your data in their cloud
- Is cross-platform (even just iOS/OSX, but certainly not iOS/OSX/Windows/Android).
Thunderbird is one of the only contenders here, and I find the UX of Thunderbird to be abysmal. I've started to kickoff a project to fill this space, but admittedly it's a big project and doomed for the shelf :/
But it's desktop only
Great UI, you can connect to pretty much any email address (although works best with Exchange, but you don't have to host your mail on 365) and has native Windows, OSX, Android and iOS clients, all bundled in for about $6 per month. Plus if the company you work for has 365 you can usually use those licences for home too (5 device licence is standard per seat).
Plus, for that $6 a month you also get Word, Excel, Powerpoint, OneNote and 1TB of OneDrive space. I don't want to sound like a Microsoft shill, but 365 is a steal considering what you get for the cost. But it's not free.
To enable mail forwarding to another domain I had to install powershell and a plugin to install a plugin to allow forwarding in my org.
Then there are times when it says : „To change this setting please enable the legacy UI“
And everything of this convoluted UX hell is documented in a dizzying but highly accurate documentation. I have to give them that!
Switched to protonmail and not looking back.
Okay so step 1: you try to enable forwarding, but the UI gives you an error about some policy that has to be set
https://docs.microsoft.com/en-us/exchange/recipients-in-exch...
Step 2: you have to find the anti spam settings in a UI called „defender something“ and turn the automatic forwarding polic on.
https://docs.microsoft.com/en-us/microsoft-365/security/offi...
Again the UI doesn‘t allow this because some setting in your organisation is disabled.
Step 3: the hard part. This setting can only be disabled through powershell. Google the name of it and you will find some docs about it.
There might be other ways to achieve forwarding. At least it sounds like that in the docs, but then they must be buried deep below the legacy UIs.
Good luck!
This is very subjective; I hate it ;). I consider Apple's Mail.app/Calendar.app/etc much better UI-wise.
> Android
Note that Outlook for Android (not sure about iOS version) is rebranded Acompli client, which sucked all your email into the cloud. This was instant no-go when it originally came out, so I ended up with Nine (https://play.google.com/store/apps/details?id=com.ninefolder...), which has an additional advantage, that the device admin rules enforced by Exchange can be applied to app only, not to the entire device.
Agree it is completely subjective - and I actually think that the Apple apps look better and are simpler to use, but personally I spend a lot of time in emails and arranging meetings, and I can get what I need to get done faster in Outlook (although I have tried to get along with Mail/Calendar in OSX, it's just slower for me).
For instance, let's say someone writes an email to me with 10 people on copy and says that we need to organise a teams/zoom call (which is a pretty common thing), the workflow for this in Outlook would be 5 clicks and can be done entirely within the application (including creating the Teams/Zoom call link). In Mail.app/Calendar.app it's way more involved and you get lots less control.
But if you just want a casual email client, then Mail.app probably does what lots of people need it to do. So when I talk about good-UI for me personally, I'm not necessarily talking about it being beautiful, but I think Outlook is more functional specifically for a power-user.
https://docs.microsoft.com/en-us/outlook/troubleshoot/calend...
What really gets my goat is that there’s no way to make search go directly to the ‘show as email list’ view. I used to have an add on to do it but it’s no longer compatible.
Pretty much the problem with anything Mozilla.
I would love for the FOSS community to come up with a simple, SOHO-friendly server/appliance to act as the central repository for information like messages and calendars and be accessible to all devices on the local network (or via VPN from outside). Then we could have some competition for favourable UIs without every application having to reinvent the wheel for all the back end protocols and formats. Sadly the experience of applications like Thunderbird suggests there isn't currently a critical mass of interest in working that way and most of the market is willing to tolerate the downsides of the cloud applications in exchange for better UIs and more convenience.
I remember when Chandler was supposed to be the last word in calendars. Even Mitch Kapoor of Lotus123 fame got involved (https://www.chandlerproject.org/).
There's something very Bermuda-triangly about Calendar applications. Why is it that in the year 2021 no one has truly cracked the problem yet?
We just didn’t figure out what we wanted to do with Chandler until it was too late. The actual final release had the bones of a pretty great organizational system, albeit mixed with the carcass of half a dozen other things we’d tried.
Installation can be janky and there's no clear documentation on dependencies -- and it'll fail silently if you're missing any. On FreeBSD I install the following PHP packages and then it works splendidly:
sudo pkg install php80 php80-dom php80-filter php80-openssl php80-pdo php80-pdo_sqlite php80-xml php80-xmlreader php80-xmlwriter
This is the image I have created few years ago (likely newer ones exist): https://hub.docker.com/r/lucianofiandesio/baikal
Internally all the major Calendar services (GCal and Outlook), store events differently when it comes to events with multiple attendees and recurring events, and it takes understanding the varying nuances to perform good synchronization. Even the difference between a timed event and an all day event will vary from system to system. And that barely touches the timezone issues that arise when scheduling.
Add to all that : the calendaring hosting providers will block your API access to their customers so unless you have a business relationship with them, or the technical solution means that they can't block you, it's a crappy business proposition.
It’s not trivial, but it’s also not especially difficult to implement. There sure are a lot of productive implementations of clients and servers out there!
Admittedly scheduling is hard, and frankly the iTIP model is just not that well suited to most people’s lives.
Radicale + Thunderbird + OpenTasks + DAVx5 works great for me.
[1] https://partofthething.com/thoughts/host-your-own-contacts-a...
I've been using Thunderbird's Lightning add-on for a lack of alternatives but it's mostly been a PITA.
I've connected it to both Google Calendar and Nextcloud's calendar, and it works perfectly well, provides notifications, recurring events, and I can quickly access today's events just by clicking on the clock on the bar. No complaints what so ever.
elementary's tasks app, on the other hand, is still WIP.
I recently also started using it with my work-mandated Office 365 calendar. According to some docs somewhere that I can't find right now, there were quite a few hoops to jump through to make that read/write so I settled for read-only.
It's not 'slick' by 2021 app standards but it does what it needs to do pretty well. And compared to some apps, it uses almost no memory.
On my phone, I combine it with FairEmail, DAVx5 and OpenTasks.
I don't think I will leave Firefox for it but I might just use it just for the calendar.
Just because something will run on an old version of PHP doesn't mean it won't run on new PHP.
You can write PHP that is backwards compatible but still decently modern sans typehints.
I used Sabre for a while recently on I think PHP 7.3 and it's not bad.
1. There is a CalDav/CardDav bridge which lets you use apps that don't implement the ETE protocol which is good because...
2. The iOS app is nigh unusable. It is painfully slow, requires manual syncing, and if your screen turns off in the middle of a sync, it may get killed by iOS forcing you to start the whole thing over again. Just set up the DAV bridge and use iOS's native DAV syncing.
[1] https://www.cyrusimap.org/imap/download/installation/manage-...
Fastmail’s web app—mail, calendar, contacts and everything else—is built on JMAP, though it doesn’t yet support offline synchronisation which JMAP is well designed to support. (Fundamentally, JMAP is an object synchronisation protocol, not an email protocol or anything like that.)
Even something as simple as forwarding calendar invites can have dramatically different functionality between two systems. I was at a company that ran split-brain between Google and Lotus Notes and it was an absolute nightmare that effectively broke calendaring for 2 years because you could only forward events one way, and acceptances wouldn’t flow back up the chain because some of the clients used a different mechanism for signaling acceptance.
This has all been a problem for decades. The business world solved this by just forming a consensus on Outlook / Exchange in the mid-2000s; if you use any other combination you have to accept that there will be dropped communications with those who use the standard stack.
I'm pretty sure vCalendar supports this, just no one has implemented it.
If I could host a lightweight javascript app that let you browse the information until your client supports it properly that'd be cool.
Of course all Notes Mail and Calendar are just Notes Applications built upon its nosql database and lotus script. Its why they were kinda awkward. But I worked briefly at IBM making custom business Apps with Notes, which was a decent/ fairly easy way of making custom applications for businesses last century.
I wanted to roll my own server solution, but I just don't have time anymore. The simplicity of Synology is baffling, and it has been one of my most favorite purchases, ever. I was able to set up an SSL cert for my domain, a reverse proxy on the Synology NAS in a matter of minutes.
This past month I've migrated my Evernote's to Synology Notes and lastpass to a bitwarden docker container running on the NAS. I'm planning on switching from Google Calendar to Synology Calendar in the next few weeks.
I haven't looked in to it, so I wouldn't be surprised if Synology has rolled their own protocols for most of these applications. But they are well supported across Desktop (Mac/Linux/Windows) and their Phone applications work great.
Again, might not be the solution you are looking for, but the ease and compatibility across various platforms might be worth the tradeoff.
The solution is not more protocols, or opinionated software.
The solution is that every individual should have the skills (software literacy) and the infrastructure (some combination of a diary server with an API in fifty languages) and tools (come on iPhone, really whatever you are doing it's a total mess)
At some point with Mailbox any coder will have built an sub-AI agent from 200 regexes - and that's probably what will smoosh out across the world - oh yes I let my Virtual AI / PA handle that, it was coded by my brother in law and I made a few config changes.
I'm asking as coordinator of Moonshot Collective, where our mission is to build coordination tools. We have builders standing by for exactly this - please give me ideas so I can give them to my teams to build.
What are your ideals for these solutions? What are the best solutions you've seen?
Old but gold.
From their site:
" Zim can be used to:
Keep an archive of notes
Keep a daily or weekly journal
Take notes during meetings or lectures
Organize task lists
Draft blog entries and emails
Do brainstorming"
Zim itself is a good desktop application and Markor is a good mobile client for it. Sync can be done via nextcloud, dropbox etc. I'm not 100% on the state of the windows support, but I use it daily and it is great. It coexists nicely with version control, too.By release 2.0 of any project, some amount of "legacy" will have been achieved. "Quite a bit of legacy" can be seen as an indicator of platform success. Is the legacy acting as an impediment to future growth or feature development? Is the legacy due to supporting a user base that is neglected by other "modern" projects? The amount of users that get disenfranchised by someones idea of new and modern can be disheartening.
There are libraries for languages like PHP, Java and C but these implementations are typically unmaintained and because of the nature of these languages they are not very suitable for the modern cross-platform world.
This is a most surprising quote. I am not a PHP expert, but C and Java are quite excellent for use in multi-platform projects. WASM makes C even more relevant for browser hosted code. The author later states that he has implemented a prototype in JavaFX. So much for legacy platforms.
There is a lack of libraries implementing these protocols, ... but these implementations are typically unmaintained
And now we can begin to understand why. I do not want to make value judgements on the motivation of people desiring to start new projects. It can be fun and liberating. Having the ability to persist and endure while bringing a library or application from prototype, to alpha, beta, 1.0 and beyond is a rare and hard earned skill. And yet, this is exactly the type of skill needed to tackle a problem in the calendar, task and note space.
I haven’t tried it yet, but I’m curious about caldavzap. A web calendar UI that syncs with caldav.
There’s a neat tool called vdirsyncer that keeps a local offline copy of your contacts/calendars that works with it as well.
Has worked flawlessly after that, and I like the integration with other parts of windows.
Its not how we want it to be. The problem is, this is a big problem space and has a lot of complexity underneath.
Not the least being that "timezones, are in so many ways, a complete mess"
I was looking at bedework, however it doesn't deploy very easily. Now I'm looking at Radicale. It does have a docker container, but it's not well documented.
But often a problem is that people in one organization can really only check the free/busy time for one of your calendars (the primary calendar associated with that org), and thus end up booking you when you're busy on one of those other calendars.
I'm guessing this is the root problem you're getting at with your comment.
Until the platforms themselves (ie: Office and Google) offer up a native way to indicate that multiple calendars represent your busy time, you're kinda stuck with this problem without employing a third party service.
The good news is there is a solution to this problem -- my own startup[1] has a feature[2] that watches source calendars and creates blocks of time on a target calendar. It offers several different privacy options, such as making the block simply say "Personal Commitment" or "busy" or having it carry through all the event details (but not attendees because that would create a mess).
[1] https://reclaim.ai/ [2] https://reclaim.ai/features/calendar-sync
[2] https://www.linuxlinks.com/kopano-groupware-application-suit...
I use Nextcloud calendar to subscribe to many calendars (.ics). On my phone I've setup the CalDav connection to Nextcloud and all calenders even the subscribed are available. That is just amazing!
You can sync this folder to anywhere. Only problem that occurs occasionally is when two people work on the same file. This will result in sync conflict. Exception is if you work in the Nextcloud UI collaboratively, but Nextcloud does not support wiki links [[ ]] and uses its own linking format (appens file id to any link).
I also git commit my personal vault and use working copy to sync with my phone. On my phone the Obsidian repo is synced with the local Obsidian app folder. This is more complicated to setup. But it works. Moreover my personal vault also contains git submodules. So I can stitch many Obsidian vaults into one (and make a big mess).
If you only ever want to serve the 1% that are capable of supporting or developing a new solution, then yes - I suppose this’d be a good thing. In practice though, such exclusionary mindsets never lead to good outcomes - software or otherwise.
While there's a lot of issues between “where are are now” and “broadly end-user-friendly libre software support models being common enough to be recognizable and repeatable”, “sure, so long as you can code” isn't meant to be the first answer. It's just become a cultural laughing-point because a lot of people do ignore the issues, and “you can choose whom you ask to handle the code” requires more work on the environment to be practical. IME, “exclusionary mindset” usually has little to do with it.
The “VCs have conditioned people to never pay for software, so you may have to have massive scale and run on surveillance capitalism to survive” and “user model of technology being vertically integrated service by default” are of course a whole other environmental game which may crush attempts to make this work.
The promise of Geary never really materialized. I think they tried to get funding a while back but couldn't hit their, arguably lofty, goals. It's still great, but limited, software.
Currently using Joplin.
The repo [0] looks like it's still getting lots of love. The commercial entity doing much of the free software development runs a hosted version [1], which is also encouraging.
What about Roundcube Next? - https://github.com/roundcube/roundcubemail/issues/6030
In 2018, RoundCube Next Remains Dead In The Water - https://www.phoronix.com/scan.php?page=news_item&px=RoundCub...
If I have a Google Business account for my company, jim@mycompany.com - and an external client of mine, tom@myclient.com, wants to see my availability, if he adds my external email address as an attendee, will he see my availability?
2 paragraphs further down...
> How to fix this in the future: I myself intend to start working on a set of Rust libraries that implement these protocols
History repeats itself.
Nextcloud works just fine with davx on android and evolution on linux for car/cal/tasks.
Radicale is fine for card/cal, but it's basic.
This scene used to be a lot worse.
Wow [1], how cool would that be. I love that NextCloud exists and I plan to use it and call me biased but god I hate to be running some PHP. I used to maintain a vulnerability database and I don't think I can ever trust a PHP project again at this point. Maybe things have changed but you'd find it very difficult to convince me.
There is no work underway to port Nextcloud to golang. That would be a bit crazy since all the plugins and apps wouldn't work anymore (and there are tons of them) and even just rewriting the core would take years.
Owncloud is trying to rewrite their core since two years and it is still only a tech demo and many features are lost compared to their php based product. (They are also doing weird thing like taking nosql to seriously and not using at all a sql database just files, that probably doesn't help...)
The major feature that was lacking with the built-in Notes app is a folder hierarchy. When I have ideas about software I want to code, hardware I want to build, or a shopping list, or a band I want to check out - I don't want these to all be stored in one long "Notes (723)" news feed where I'll forget it if I don't handle it immediately.
Back in the days of the iPod (call me old), it was easy to have a folder hierarchy for Notes (though I admit that they weren't editable). There were third-party apps like Check Off that would sync a to-do list automatically, but only as a single file. When the iPhone arrived, iTunes gained the ability to sync Notes, but only as a flat folder structure. It's true that SQL doesn't have folder hierarchy so it's harder to code, but I'd rather categorise ideas like they come in my mind!
Apple removed the feature of local Notes sync in Mac OS 10.9 Mavericks. Calendars stuck around a little longer, but I moved to BusyCal when the GUI was redesigned in 10.10. Currently I'm using Mac OS Server 5.6 on Mac OS 10.13 to host a local calendar and email server.
Apple removed Calendars and Contacts from Mac OS Server in Mac OS 10.14 Mojave. The recommended replacement is CalendarServer, Copyright (c) 2005-2017 with a note that says "The developers ... have each moved on to other projects". Apple recommended this in December 18, 2019 according to the "Published date".
https://support.apple.com/en-us/HT208312
Apple removed syncing Apps with iTunes 12.7. The message is clear: Apple are not interested in letting you manage your digital life - you must use iCloud and store it on their own servers.
https://developer.apple.com/forums/thread/86890
I miss the Digital Hub strategy where there is a Source of Truth that isn't owned by Apple or Google. The cloud is just someone else's computer, and if/when Apple/Google/Spotify/Facebook decided to lock me out of my account, I don't want to lose my photos, notes, music, contacts, bookmarks, calendars.