Drupal 8 golf club fitting application

The folks at MyGolfSpy, the owners of TrueGolfFit, are experts at golf, testing dozens of new clubs each year.  They decided to put all this testing to use and bring golf club fitting to the masses at an affordable price.

We knew Drupal would be a fantastic fit for this project, but had to over come some practical challenges.  We wanted to store the swing analysis data provided by the testing equipment in a custom entity, but we needed the process of importing to work for non-technical users.  The volume of data and statistical analysis that needed to run on import was too much for the server to manage.

To solve this problem, we developed a Drush command that would be run by a cron job.  In this way, the site managers could simply create a new node, and upload the raw CSV from the test equipment, and within a couple of minutes, the Drush command would pick up and parse the file, clean and analyse the data, and store everything in base fields of the custom entities we created.

The UX called for simplified, touch friendly screens to collect customer data, store preferences, and a customized checkout process.  We built a series of multi-step forms that transformed into touch-friendly Slick sliders.  For payment collection we used Stripe Checkout, providing several patches that made it more flexible and robust.

TrueGolfFit now provides golf club recommendations to thousands of golf players around the world.

Mobile input

Quickly capture critical information

TrueGolfFit provides a simple, mobile friendly experience for customers to enter their metrics and quickly receive the best matched golf club. TrueGolfFit uses a proprietary process to statistically match user provided data to normalized sample data to accurately recommend the clubs that provide recommendations that are proven to increase distance and reduce scores.

Results screen

Large Datasets, simple visualization

The large imports generated from the launch monitor used to capture the reference data proved to be a challenge for Drupal's intensive entity system.  We created a custom entity with simplified base fields to store the data, as well as custom Drush commands that handled the UI uploaded data files and process the statistical analysis.  

Stored user data

UX Simplified

The thoughtfulness that went into the app extends to every experience.  It stores previously entered swing profile and payment information to help customers get through the fitting process quickly on repeat visits, previous recommendations are stored so customers can see how the newest clubs compare to older models, and custom marketing automation integration automatically generates the user accounts and remembers users across visits.

Project Timeline

User Flows

User Flows

User stores were mapped to flow diagrams.



Wireframes and low fidelity prototypes were created.

Design Mockups

Design Mockups

Branding and design elements were created and screen mockups presented.

Custom development

Custom Development

Custom integrations and development including theme and 8 custom modules.