A password manager (though necessary) can be a huge risk. It is a single point of failure "steal all your credentials and take over your life" type of product. I would never put any truly important passwords into a widely used syncs-stuff-and-magically-integrates-with-browsers product. Because if that stuff gets hacked, you are seriously pwned.
Personally I use PasswordSafe with some old binaries I have used for years; I figure if those executables were compromised, I would have been hacked already. Decided to take some risk and use StrongBox for accessing the PS database on Mac. For the most sensitive passwords (the "we can log in to your bank account and take all your money" or "access government services and do whatever like change your legal name" kind of passwords) I do a little obfuscation of the stored passwords, which prevents them from being stolen as-is if the software compromised, plus passwords are never copied in their actual form into the clipboard. Such obfuscation will not protect your nuclear launch codes, but for an Average Joe who does not have a big target on their back, it should hopefully be enough for most hackers to not bother and move onto an easier target.
Some non-sensitive passwords for stuff I need access to frequently, I keep a copy in Google Keep, with some obfuscation - plus allow Firefox to keep some passwords like Netflix and such.
Some bonus thoughts, relevant to the general topic, but not to the question of OP:
Bonus idea - I never made an app for this, but ... it would be very simple to make a program which generates any password for you by taking a single master password and concatenating with some service-specific text (like the domain name of a service plus your username), feeding that as a seed for a cryptographically strong pseudo random number generator, and extracting a password from it. Bonus: only need to remember a single password. Risk: that password unlocks _all_ your other passwords. But ... that is what a master password for a pwd management product does anyways, isn't it?
Second bonus idea, and this one I have actually done - I was involved in an initiative a while back in which we thought about ways to use public key encryption for logging into service, in which the key pair itself is what you use to identify your user and authenticate. This would have lots of advantages for obvious reasons. The big problem? You cannot remember or meaningfully enter all that keydata, and there is the huge problem of managing your keypairs and copying them around.
So we did the analogue to what I suggested above for generating per-service passwords from a single master password, but the procedure instead generates a keypair, and it always generates the same keypair from the same set of input data. This stuff you can easily do in python using the versile-python3" library which is available from PyPI (pip install versile-python3). Here is all it takes to do it,
from versile.quick import VCrypto, VX509Crypto
purpose = 'Slashdot demo'
personal = 'CptJeanLuc'
password = 'GreatestPwd4Evva'
identity = VCrypto.lazy().dia(1024, purpose, personal, password)
x509_privkey = VX509Crypto.export_private_key(identity).decode('ascii')
x509_pubkey = VX509Crypto.export_public_key(identity).decode('ascii')
print(x509_privkey)
print(x509_pubkey)
and here is the output.
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCmZMPy6cn3qHXmmmmZandQuGjpxB2C0Yo5mlm4BT9LXg/ykDUIQJraNb3Iyq+Z
7dGUprykiJPuLF1vfIPmis9mYiGA/wMaIqdEy/kV3ufW5rHlJrb8qkIi1k27aSqawrZlX3o0JxJ8
9OuMk89EyvxhN+0ZbtF4JOffo4gn1LqrTQIDAQABAoGAO8oHcvi43unEe7lOapcMCpBI+n7Cz+f1
UB97T5lrFezVtCZHOBDm07Pt3wGduaTv4wdKz6BX74Q3isDmMGf+f8oYW5jJyJdKttHDsH99ECG9
H+K1E4Uq6Ay1J/YbCaygumZztj1NXg2jGiTfNLNOuBnWBoK4Tqq2Sm278lL+jY0CQQDX0C+gUkkT
0U8NUvpAVYWApC8hHh9yDNkI+8es1/7R+cZCogUm85HTrcOZ/+NQWcXK1/0RfnyCntHHWWJwpu53
AkEAxWC/QHnnQW/N7hsb6//NrXC3g1S4+SFZPjOrUkbOQTiPmQ4CT1HmPOU2ADha9jYqO1Mi/Nt5
cXbicPVcZmIRWwJAIqERQ1RwzXFEkgrChRgz99Rgi5vdx9sv6DUecSmnheHiYkbFNN7Yg3LadBeP
ThFZn5bQ0MHPENaTKr25AgKHOQJAfPDB/8FqxrxMQdX9NcWmX4zDTan6sREQGdTBNQLHGvf/xiXd
BnLUaGW7aiZCRiqBTy5QLnmLhWx46IIYbGLVkwJBAIYQLf2kOxjXuAnh5Jde866PS8IWCQzTRsi9
534MYYfAtUkBWfHTr+6SrQdt43QzL0vCVO7naEYaI14EhCZDKr4=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBAKZkw/LpyfeodeaaaZlqd1C4aOnEHYLRijmaWbgFP0teD/KQNQhAmto1vcjKr5nt0ZSm
vKSIk+4sXW98g+aKz2ZiIYD/Axoip0TL+RXe59bmseUmtvyqQiLWTbtpKprCtmVfejQnEnz064yT
z0TK/GE37Rlu0Xgk59+jiCfUuqtNAgMBAAE=
-----END RSA PUBLIC KEY-----
Versile Python was written some 10+ years ago and is not maintained, but it is LGPL so you can just run with it and do something fun. Documentation is not currently available online, but you can download the Versile Python source from github and build it using Sphinx (pip install sphinx and make html).
Versile Python does lots of stuff, and the cryptography/X.509 bits is only small part of it. From PyPI: "Versile Platform is a set of open protocols enabling object-level service interaction between heterogenous technologies. The protocols are designed to enable simple yet flexible and powerful patterns for interacting with remote services or running services." There was also an implementation of the Versile platform for Java (also available on Github), but that probably does not work with the later java runtime versions.