Technology stack that we use within the R&D team at Visualsoft

  • 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.

  • NGINX is great at supporting lots of fast HTTP requests. We've typically used Apache to host websites, but use NGINX where it proves beneficial for other services.

  • Github is used to store all of our repositories and version controls. The features and functionality of Github are a cut above other similar services for us.

  • 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.

  • Pretty simple - it's our chosen database system. Widely used, proven and stable.

  • The various projects that we'll have on the go at any point in time, within the R&D team, are internal projects that will prove long term benefits. We use Trello to track individual tasks that comprise those projects, and work with them in an Agile approach.

  • It's the front-end version of Composer, so is pretty essential to pull in packages that can be tracked and kept up to date.

  • Containers are phenomenally powerful and Docker makes setting them up a breeze.

  • We use this to optimise the delivery of the client-side for our revised Admin System, so it's able to be delivered to browsers as efficiently as possible.

  • Postman is a great tool to interact with APIs. Typically we'll use it each day to aid with API development and testing work.

  • The simplicity and elegance of Laravel is great to work with. We use it to run our API Developer/Auth Portal.

  • 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.

  • It's really the only PHP IDE to bother with in our experience.

  • It's the glue that holds our container management together, allowing things to scale when and where we need them.

  • 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.

  • Everyone likes graphs, right?! This isn't a tool we actively use right now, but paired with Prometheus we want to use it to have visual monitors on things like API cluster health, status, queue stats, DB/redis query and cache stats etc.

  • We use this as a CI tool when working on our API and related tools. The setup is relatively painless and it hooks directly into our Github repo's to provide reports and feedback.

  • We use Sphinx as the main search indexing system on our clients' websites. It's a more powerful system than we even scratch the surface of, and allows us to index data from a variety of sources.

  • 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.

  • We use Redis for a fast and scalable solution to caching data within our API.

  • Apache is used as the HTTP server for most of our clients' websites

  • All of our responsive wireframes that are used to build the front end of our clients' sites are built with HTML 5, so we can ensure the most efficient and up to date experience for their customers.

  • 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.

  • Simplifies setup of Docker local and production environments wonderfully.