Blog

Behind the Build: Bowls Australia Elite Team Monitoring App

When Bowls Australia sought a smarter way to track their elite team’s performance, they turned to Grade to create a cutting-edge monitoring solution. Here’s how we delivered.

  • 28 October 2025
  • New BusinessCompany NewsGrowth
Well loved bowling balls on grass pitch

Increasingly, data-driven insights are becoming an essential tool for enhancing player performance and team strategy. For Bowls Australia, the need for a robust system to track and analyse elite team performances was clear.

Working closely with Bowls Australia, Grade developed an innovative bowls monitoring app that offers real-time performance tracking, as well as in-depth historical data for comprehensive player analysis. 

This project, however, was not just about creating a functional tool, but one that could evolve and adapt to future needs as the sport progresses. Here’s a look behind the build of the Bowls Australia Elite Team Monitoring App and the technical decisions that shaped its development.

Bowls Australia's High Level Requirements

  • Provide a simple and intuitive user experience to stat live bowls matches using an iPad

  • Track the effectiveness of each players bowl during a match

  • Provide real-time statistics for in progress matches for players and teams

  • Provide historical statistics for analysis, review and player comparison

Initial discussions with Bowls Australia revealed the opportunity to enhance how stats were recorded, what data was captured, and how it was displayed for analysis. The team had previously relied on paper-based stat sheets and Excel, highlighting the need for a more streamlined, digital solution. Through collaboration, we identified the potential to transform their process with an app that could improve efficiency and accuracy in tracking and analysing the data.

Given these requirements, Grade understood the architecture would need to allow for an iterative approach where inputs and outputs would change as the application was put through user testing. It was also known up front that this initial phase of work would set the foundation for future funding and improvement so it was important to make sure it would be able to incorporate future ideas such as offline access and more in-depth reporting without requiring major architectural changes.

With this in mind, Grade developed a decoupled application with a Vue Frontend for statting matches and a Laravel Backend for administration and reporting in a mono-repo setup.

Grade chose to use Postgres as the database for the Backend application as a relational database made the most sense for storing and referencing the raw bowls match data which had to keep track of matches, teams, players, positions, ends and bowls.

The API used to communicate between the Vue Frontend and the Laravel Backend was developed using Laravel JSON:API. By developing a specification-compliant API it was possible to auto-generate API documentation as a swagger document and ultimately auto-generate a TypeScript API Client for use in the Vue Frontend. The mono-repo setup ensured the Frontend and Backend were always up to date with each other, referencing the same data structures as it was developed and iterated on.

As users would need to login to the Frontend application to stat matches and access the Backend application for administrative tasks and historical reporting, Authentication could be shared between the two by implementing auth in the Laravel Backend with Laravel Fortify and Laravel Sanctum leveraging session-based authentication and CSRF protection. By placing the applications on the same domain (different subdomains) they were able to share cookies and have no CORS complications.

The performance metrics used for real-time and historical analytics needed to combine match, player, end, previous bowl and current bowl data. To calculate and provide these metrics efficiently, Grade normalised the data into a single performance table for each bowl as it was saved via the API and then leveraged Postgres Views to combine and calculate the performance of each player and team for every match. By offloading the calculations to the database the Frontend was only concerned with displaying the data and then when the metric calculations and outputs were iterated upon, only the views needed to be updated. As the raw data is stored separately and the combined data is normalised in a single table, if the metrics ever change in the future they can be recalculated for all previous data by updating the Postgres Views.

To allow the Bowls Australia team to view historical data and perform administrative tasks, Grade used Filament to quickly create an admin interface which allowed users to search and review data for matches, review metrics for players and compare players head to head. The filters were taken into consideration when the Postgres Views were created which ensured fast data retrieval and display, and as the raw data is always accessible in the database the team will be able to update these or do more in depth analysis as required.

Today, the new Bowls Australia Elite Team Monitoring App combines intuitive user experience with powerful backend architecture to deliver actionable insights on player performance. Grade’s approach ensured the app would not only meet the initial requirements but also be adaptable for future enhancements, such as offline access and advanced reporting. Through a carefully considered tech stack, including Vue, Laravel, and Postgres, Grade successfully built a solution that empowers Bowls Australia with real-time analytics and historical comparisons to drive performance improvements. By focusing on scalability and user-friendliness, this app is positioned to evolve alongside the needs of Bowls Australia and the sport itself.