Stoneybatter Cross Training App

Web application for Stoneybatter Cross Training, a CrossFit gym located in Dublin, Ireland.

Overview summary of the Stoneybatter Cross Training project
By moving from a SaaS solution to a bespoke web application, the gym manager reduced their monthly management costs from €273 to €8.

Website

app.stoneybattercrosstraining.ie

Deployment

26th February 2025

Front-end Stack

Nuxt Vue.js Nuxt UI TypeScript

Back-end Stack, Payments & Emails

Directus Nitro Stripe aws SESplunkPlunk
Access to the app is restricted to members and requires registration.

Context

Stoneybatter Cross Training is a gym specialising in CrossFit, located in Dublin, Ireland. Classes and CrossFit sessions are offered to members who book their place in advance. Members can choose between purchasing one or several places directly, or a monthly subscription at an advantageous rate.

The gym manager was using an external SaaS solution to manage bookings, payments and class scheduling with coaches. The service did not meet the manager's business needs, as he was forced to send Stripe payment links via WhatsApp, manually maintain a member tracking spreadsheet, and manually follow up on failed renewal attempts.

This amounted to a notebook and pen at the cost of €273 per month.

Overview

Homepage screenshot

The Stoneybatter Cross Training web app allows members to purchase credits and then book a place for a CrossFit class. Classes consist of a series of exercises specific to each type of session, created by the gym's coaches. The manager and coaches have access to additional CRUD functionality to manage classes, workouts and members.

Features

Class calendar

Calendar screenshot

Recurring and one-off payments

Payment page screenshot

Authentication and member account management

Account management page screenshotLogin page screenshot

Administration by manager and coaches

The manager and coaches have access to administrative functionality to create, modify and delete app elements, depending on their role.

Administration example screenshotManagement page screenshot

Automatic email sending

Automatic emails are sent to members to inform them of various events, such as booking confirmation, validation or cancellation of a waiting list booking.

Full-screen session display

For displaying on the gym's television screen.

Screen photo

Technical stack

The app's architecture is hosted on a server containing the database and Nuxt .

The SQLite database is managed via Directus . Nuxt is used in SPA mode to ensure smooth dashboard usage and is supported by Nuxt UI for styling. The Nitro server, integrated into Nuxt, handles payments via Stripe , serves as an intermediary between the Front-end and Backend (BFF), and also performs recurring tasks (cron). Automatic emails are sent via Amazon SES and their flows are managed by a Plunk instance. Automatic database backup is implemented with Duplicati .

Process

Created a hidden website (IP restriction) automatically updated with each code addition to implement an adapted Agile methodology. The CrossFit gym owner was able to use and test the site regularly to provide feedback on necessary adjustments during the development phase.

On deployment day, the entire member database was imported into the app, then the site was opened to the public. Members were able to log in and use the app immediately, simply by choosing a new password.

Maintenance and evolution

In the weeks following deployment, we made improvements and minor bug fixes reported by users.

About a month after the app stabilised, we added a new personal records (PRs) feature for members, allowing them to track their progress on all CrossFit exercises and compare them with other members' records, if they wish.

Personal records leaderboard screenshot

Results and impact

The most striking user feedback was about the fluidity of use. With the lightweight stack and optimised queries, the app is very responsive and fast (sometimes too fast for some members used to the old solution!)

The integration of PWA features reassured some members by allowing them to install it on their phone like a native application.

Although the manager uses his computer for most administrative tasks to be more efficient, he loved being able to handle certain quick tasks from his phone when travelling, without having to postpone them.

The gym manager was also able to reduce his monthly management costs by 97%, from €273 to €8 per month, by using a bespoke solution that exactly meets his business needs.