If the performance of btrfs is OK for your use cases, use subvolumes. They essentially look and act like folders, so you can make one for each project...