adding to the list, one exotic approach to this problem is stagex https://codeberg.org/stagex/stagex