GNU parallel is also really good for replacing loops with concurrency. Your example might look something like:
for app in $apps; do
echo "Installing NPMs on $app..." 1>&2
echo "$app"
done | parallel --will-cite "cd $REPO/{} && npm install"