I personally would recommend it over Bitwarden since with Bitwarden you NEED internet to access your passwords, and even if is open source, i canmot trust it, security breaches can happen in any time, having your vault locally stored helps a lot.
There are more but i can't Remember them right now.
I just tried because you made me doubt, but you can access your passwords offline with bitwarden. Your argument about trusting a third party is far more pertinent, i'm choosing to trust them but thats really my choice. It is also a limited trust: even in a case of a data breach, bitwarden is encrypted end-to-end with your password, even if someone gets access to your data they wont be able to read it without your master key.
I ran into issues when using Bitwarden for the first time, i don't understand why, i just like having my password vault close to me, KeepassXC and KeepassDX just makes things a little more painless
You don't need internet to access the passwords stored in Bitwarden if you have their local clients installed. It stores an encrypted copy of your database locally to your device which syncs (updates) over the internet.
But how do you access the files from another app? Where are they stored? I have nothing in the com.nextcloud.client folder for example. Proton Drive mounts in the left-hand menu of Files. Would be nice if that was achievable with Nextcloud also.
EDIT: Turns out it does if there is no app passcode enabled. Not sure I am comfortable having that turned off though.
To be honest I use signal "message to self". I know there are better ways to do it but it's a very convenient way to transfer small files from my laptop to my phone securely.
You can self-host Bitwarden, and sync your vault to your phone. Maybe not an option for everyone since it requires some technical skills, but very doable.
Self-hosting KeePassXC requires installing one package and backing up one file. I expect that requires less technical skill and is doable for more people than to self-host Bitwarden.
You don't. KeePass databases can be easily shared totally offline.
However, it all depends on "how easy" you want the sync to happen...
There are many ways to "sync" KeePass databases, basically you just have to copy password database among the devices, which can be done totally offline.
HARD - Manually copy the KeePass database to the devices
Can be accomplished via any Network connection or USB cable connection
EASIER - Put the database on any file sharing service that's available on your devices, and sync that
The file sharing service can be available on the internet (Google Drive, OneDrive, iCloud...), but it also works with any file sharing service that's not connected to the internet (e.g.: local only Nextcloud server, or not even that, using Syncthing if that's your thing..., which would not even require a local server)
So, I'll just give one example.
If you have 2 devices:
Linux PC
Android Phone
You can use KeePassXC on the Linux PC, and KeePassDX on the Android Phone, and have a copy of your kdbx file (the encrypted database) on each device, manually copying the newer version whenever there are changes on them.
Issues that might happen: consistency between the files in case you make changes to both databases and forgot to sync manually previously.
There's no easy way to handle this currently afaik if you are doing manual syncs... I'd suggest maintaining one of the databases as "kinda read only", not performing edits on it unless you can immediately copy it to the other one.
You can do the same thing above, but instead of manually copying the files among the devices you can use Syncthing... Or if you have a local Nextcloud server, you can use that to share the files, which is pretty easy to use to ensure consistency if you are using KeePassXC and KeePassDX, since if you open the database on Android using KeePassXC directly to the "file system" that links to the Nextcloud folder, it will always automatically retrieve the newest version to your device if there has been any change and if your local Nextcloud server is reachable, otherwise it just uses the local cache, and you will know it's using the local cache and was not able to sync.