The scenario:
You have a site that you’ve been developing on your local workstation. The site is not finished, but it’s time to start getting outside feedback, so it needs to be pushed out to a remote server for others to access it.
The first time you do this it’s easy: Push the code up to the server, take a dump of your local MODx database, and load that onto the remote DB (then make any server specific config.inc.php changes that are needed).
The problem:
Once the site is on the remote server, you realize that certain adjustments need to be made to resources, snippets, etc, in order for the site to function. For example, you may have forgotten to publish some resources (and didn’t notice because you’re always logged in on your local box, and there’s sadly no indication of what’s been published or not on the UI

), or changes may need to be made to property sets of snippets - in my specific case, I needed to change formProcAllowedReferers in order for SPForm to function properly on the remote server. These are specific examples, but you can use your imagination to see that any number and type of changes made need to be made because of the change in server environment, depending on the complexity of your site.
Further, you know that in the future you’ll most likely want to push another complete code/DB dump to the remote server (since the site is still in early development) to re-sync your site versions.
The problem is that any changes you make on the remote server DB via the MODx manager will be overwritten the next time you push your DB. One way to avoid this is to first make the change on your local version then push another DB dump - OR - make the change in both places. Of course another way would be to keep a record of what was changed and where (having detailed knowledge of the DB schema), and manually push only the tables that needed to be updated on the remote site...or maybe make the changes remotely and push them back to your local before continuing development...
Obviously none of these solutions bodes well for streamlined ongoing development and maintenance of your site.
These sorts of things are easy to deal with when all of your code and configuration files are on the file system and/or under version control, but
I’m wondering how have others dealt with this type of scenario with MODx? Is there an implied way to manage the dev-->staging-->live process for MODx? And what if there are multiple developers working on the same code base - how does that work?
One possible solution that comes to mind is adding the ability to push/pull selective resources/changes (property sets, chunks, snippets, etc) directly from a local MODx manager to a remote site. Further, some kind of heartbeat connection could optionally be maintained between MODx installations, so that users on any end of a connection will always know if/when they are in sync with the installation on the other side of the heartbeat, and with regard to which specific resources (some IDE’s with code publishing/FTP features do this). I’m not sure if this fits into the overall paradigm/vision, however...it also unfortunately means punching a hole in your remote firewall for outside Mysql connections (or needing ssh tunneling, vpn, etc)...
Or maybe it would be as simple as adding a way to selectively dump resource data to an intermediate file format (SQL, XML, etc) from within the MODx manager...
FYI, this is not an idle hypothetical question, I’m actually trying to work through this on an actual project - so any experiences or advice (particularly from the devs) will be greatly appreciated.
Please also let me know if I’ve missed something - is this what transport packages are for? If so, how do they fit into this particular day-to-day scenario?
Is this something that has already been considered for current MODx/Revo users, is it something still on the roadmap, or is this not at all a consideration for MODx development?
NOTE: underlines added to make my specific questions easier to read amidst the rest of the rambling.