The idea of a deployment per branch is not a new one, but often more difficult to set up than it might first appear. There are multiple approaches to take, many dependent on your final target setup.
I recently came across a project targeting Laravel Forge, building on their SDK to provide an automated deployment of preview branches to separate sites.
The project is relatively new, but I gave it a shot. Found a few bugs or shortcomings, sent in a few patches, and surprisingly, the author accepted them. I say surprisingly because often projects reject input for a variety of reasons (doesn’t fit vision, formatting, etc). Mehran, the author, has been quite supportive so far, and it’s been a fun experience having a positive impact to someone’s open source project.