horizone
First thing to go was Google Analytics. Depending on your product and how you want to grow it, it’s possible that you don’t need the range of reporting that GA provides. I know I didn’t.
After that I looked at what other third party services and trackers that were being used. I’ve been opposed to advertising for 15 years, so I didn’t need to worry about them as they were never there. I work on other projects that are infested with them and I would love to remove them but marketing loves its metrics and ability to squeeze a dollar out where ever possible. External commenting services were removed (that was more laziness on my behalf) and social login methods.
Lastly (and this one was hardest to part with due to the benefits), CDNs. I decided that any external request would be a problem, as once the request leaves and gets redirected a few times you’ve provided who knows how many companies data on your end user. Every file would have to reside within the realms of the project.
In the end I’m happy to say that my project (which is still in development) is and will always be self contained, for the protection of the end user.
I do realise that there are other external factors that can track the user, but from my end I’m doing what ever I can to minimise those factors.
Not trying call you out on this point, more it made me laugh. Our lead developer strips out characters that break his XML importer (lets just say they are standard common characters, heck, he changes chr(13) to a string so he can switch it back later because he doesn't know how to handle multiple lines in an XML value). People who don't know how to escape inputs / actually handle data properly are in every language. We cringe on a daily basis.
I see this sort of thing on a daily basis, but it's not from PHP developers but our "lead" Delphi developer. I've tried to convince him of the benefits of parameter based queries, but believes that it would be a performance hit (performance for him maybe, he'd have to struggle to learn something new).