My advice, fwiw: make things more boring and less special. Reduce cleverness and surprises where possible. (I realize this isn't always possible)
Automating on-boarding is possible, but it is usually better to have good docs that breakout into different systems like OSX, windows, Debian/fedora and just have good copy-paste from there. That allows for tweaks to be made more easily when things go wrong, and to update for future devs.
If you really need to automate, write your own installers to do the work inserting code, installing dependencies, etc and expand to support different systems where necessary. This can be as simple as a github repo that you pulldown and run an installer for, that automatically hooks in to the shell and provides an easy path for updates.