PHP has been the backbone of what we've done at Visualsoft for years. We have lots of experienced people who have used it and know how to get the best out of it. It's come on leaps and bounds over recent years, and is the basis of pretty much everything we'll build with.
Team comms is essential. The R&D team is distributed over two offices, as well as the chance that people are working from home. Slack provides lots of options of keeping individuals and groups up to date. We also use it to integrate into services such as Github and Sentry.
We think VueJS is great. It's the main tool used to generate the client-side UI of our updated admin system, as well as being used in other smaller projects. The possibilities that VueJS brings to the table, means that we can quickly create rich and app-like interfaces and experiences.
The error and event tracking in Sentry is superb. Being able to assign the raw error to people along with all information at the time the event occurred means that we're tracking and fixing problems before they become apparent to customers. We use the self-hosted instance of Sentry.
Another one that we're not using, yet. But have realtime data updates within our applications and the central API will be a great bit of functionality that gives our clients more control and keep them informed of changes and updates in their stores, in real time.
We use it as part of CI process to check code quality, to ensure that we're not inadvertently making common mistakes and can keep the smells and scope of code changes in line and clean. Having this step here should make future support and additions much more efficient and easy to understand.
jQuery has been the basis of our front end JS for a number of years. The key part for us was that the amount of code saved by using jQuery methods, as opposed to writing out cross-browser compatible alternatives made it a no brainer. In recent years we've had to be clever in how we deliver jQuery on the websites, to ensure it's not render blocking and improve client-side performance but it's still a vital library.
Well, we already have jQuery in our stack, so we couldn't not have plain JS too. We will write most JS to use jQuery methods, but to improve client-side performance we'll typically defer jQuery loading in. So if there's some client-side operations that need to happen before jQuery is available, then vanilla JS is how we'll typically handle that.