Sailfish works quite well. Especially if you are not heavily using privacy-hostile apps (it has Android emulation, so things like OSMand or public transport apps run well). Quite neat. I have been programming mine in Guile, and I also have a Sailfish PDA with a physical keyboard.
What you have to do is to think hard is what you really want from a phone or pocket computer .
Some of the UI isn’t open, otherwise it is Qt / Wayland / pyside with stsndard pkcon / rpm package manager and I program mine in Guile.
And the UI isn’t the serious issue. The serious issue is propietary firmware which prevents you from really running Android / whatever on a vendor phone and also that a phone does not have one but around five different processors and only the “OS” one can be controlled by your own software. An Intel Pocket PC is far better in that regard, except that it won’t work as a telephone.