@nebulon not what I personally wanted to hear, but fair enough, good to know, thanks.
Presumably Cal/CardDAV is is on the roadmap for for Cloudron Calendar/ Contacts apps?
CardDav synchronisation
Yes.
But I'm unsure about your proposed solution:
I don't (yet) use the Cloudron Calendar app, so I don't want to just be able to sync with that, but with my Nextcloud directly.
But yes, the Cloudron Calendar app obviously needs to support CardDAV sync too - does it not already?
@MiroTalk would you like to test this package to see if this works as intended with MiroTalk? https://git.due.ren/andreas/rustdesk-server-cloudron/-/raw/main/CloudronVersions.json
Is that new? I had a quick look at https://ca.cloudron.io/ and didn't see it there.
I'd love to see something like Mailman or Sympa integrated into Cloudron.

I'm still using Nextcloud contacts and so I need to be able to connect to that.
Obviously it should be able to connect to the Cloudron Contacts app too if it doesn't already (I couldn't see any contact-related settings).
For various purpose, I quite often want or need to print an email.
Currently there is no proper way to do that (Ctrl+P doesn't cover it)
If I right-click on a message in search results, nothing happens.
I expected the right-click context menu to appear as normal, but it didn't.
One of the features I really like and use a lot in SnappyMail/ Tachyon is "Edit as new":

Please add something similar to the right-click context menu:

And to the three dot top-right menu when viewing an email:

Thank you!
Not a big/ huge deal, but I'd personally much prefer these Discard, Save draft and Send buttons to be top left instead of top right:

I'd also like the order reversed.
So, top left and: Send, Save draft, Discard.
Thanks!
If I want to close the window, I'll close it.
I don't think hitting save draft should close it (it doesn't in other mail clients).
I just wanted to add an inline image into an email.
Normally I can do this by just copying the image and pasting it directly into the compose box (this works in SnappyMail, Tachyon, Roundcube, Gmail, etc)
But when I try to paste an image into Mail, nothing happens.
I'm using Firefox (but I've just checked and it's exactly the same on Chrome). With dark mode enabled with either "system" or "dark" in Firefox settings, lots of emails end up being unreadable because they result in dark text on a dark background:

SnappyMail was getting too buggy and unmaintained. I tried Tachyon and some of the bugs that bugged me are still there. So I've already moved to using Mail which is in many way by far the best option now!
Thanks so much for creating it @nebulon! 
Once it's got the no split option and a bigger default compose window it'll almost be perfect! 
BTW, can people not on Cloudron use it too?
@nebulon just had a thought. A potentially very simple way to give me what I personally want here would just be be a setting to toggle "open compose window full screen", because full screen is perfect imho.

But getting it to remember the size and position it last was would possibly be a better solution that'd work for everyone.
@robi my existing webdav connection to https://library.uniteddiversity.coop had broken. But works again (including writing) after creating and using a new App password for it (GNOME Files didn't actually prompt for a username, just a password)
I finally got this working with Claude's help, so I asked it to write this quick guide for anyone else wanting to use music from a Cloudron Volume with Funkwhale (2.x) via in-place import (no copying).
1. Mount the volume
In the app's Storage settings, add the volume as a mount (read-only is fine). It appears at /media/<VolumeName>.
2. Don't change the env vars
Leave MUSIC_DIRECTORY_PATH and MEDIA_ROOT unset in /app/data/env.sh. The package's nginx config (/run/nginx.conf) serves in-place files from /app/data/music/ regardless, so pointing MUSIC_DIRECTORY_PATH at /media/... lets the import run but breaks playback. Remove any lines you've added and restart the app.
3. Symlink the volume into /app/data/music
In the Web Terminal, replacing <VolumeName> with your volume's name:
ln -s /media/<VolumeName> /app/data/music/<VolumeName>
chown -h cloudron:cloudron /app/data/music/<VolumeName>
If your music sits in a subfolder of the volume, link that subfolder instead. nginx follows the symlink fine.
4. Get a library ID
Funkwhale 2.x creates built-in libraries per user (me / followers / instance / everyone) and the old /content/libraries/ page has gone, so list them from the terminal:
source /run/funkwhale/env.sh
source /app/code/venv/bin/activate
gosu cloudron:cloudron funkwhale-manage shell -c "from funkwhale_api.music.models import Library; [print(l.uuid, l.name, l.privacy_level, l.actor) for l in Library.objects.all()]"
5. Import in place
Test with one folder first:
gosu cloudron:cloudron funkwhale-manage import_files <library-uuid> "/app/data/music/<VolumeName>/<Some Artist>/" --recursive --noinput --in-place
Then for the full library, run it detached so closing the terminal doesn't kill it (queuing ~100k files over an SSHFS mount took me a few hours):
setsid nohup gosu cloudron:cloudron funkwhale-manage import_files <library-uuid> "/app/data/music/<VolumeName>/" --recursive --noinput --in-place --async > /tmp/fw-import.log 2>&1 &
Check progress with tail /tmp/fw-import.log.
Keeping it in sync
I sync new music onto the volume with the Syncthing app on the same server, so next I'm going to try import_files ... --watch --prune as an @service line in the app's Cron section. Will report back on whether that works over an SSHFS-mounted Storage Box.