I think Zotero is an excellent tool and I used it for a long time. However, like the author, I also felt that Zotero was not the ideal tool for me. But a straight BibTeX file is also rather unwieldy. Essentially, bibliographic data has provenance (say, a DOI identifier), and it is very useful to keep track of this in a structured way.
A friend and I have been working (slowly, over the past few years, since we are both academics) on an abstraction layer over BibTeX called Autobib: https://github.com/autobib/autobib
Broadly speaking, Autobib is a CLI around SQLite database of BibTeX records. But in addition to plain BibTeX, Autobib is aware of 'external data providers' (like DOI, MathSciNet, OpenLibrary, arXiv, zbMath, etc.) and will automatically retrieve data bibliographic data from these data providers. The provenance of the data is stored alongside the record itself, and this can be used to retrieve updates, prevent duplication of data, etc.
The killer feature is: if you have a file (say `file.tex`) and the keys are in a format which Autobib can automatically recognize (say, you use citation keys like `doi:my/weird/doi`, and there is support for custom formats and aliases) you can run `autobib source file.tex` and it will write to standard output a sorted BibTeX bibliography for your file. This lets you trivially maintain a per-project bibliography which you can check into source control locally and which exactly corresponds to the paper itself.
But otherwise, Autobib is "just a wrapper over a BibTeX bibliography"! When you edit an existing record, you are just editing a BibTeX record. There is integrated search, directly on the BibTeX fields themselves.
There are some extra features, like support for attachments, fuzzy search, undo-tree support, headless edit, auto-normalization, soft deletion, replacement, merging, etc. The database format is relatively simple and open (currently not particularly well documented, but this will change when it stabilizes) to allow introspection by other tools.
The tool also strives to play nicely with other tools (structured output, composable, etc.)