← All projects
Athlon Club 4.0Multi-sport club · Rome

A club founded in 1973, digitised from the inside.

Swimming, fitness, ice and over fifty years of history in north Rome. Athlon is where the Ready2Digital method was born: every tool was first a problem lived at the front desk, then software.

570Unique leads a month
2,281Leads in four months
400New contracts in the same period
100%Digital sign-ups, signature included

The challenge

Paper sign-ups, requests scattered across reception, phone and WhatsApp, a back office that talked to nothing else. Every new channel added a piece of information nobody pieced together: nobody could say for sure who was a lead and who was already a customer.

The approach

The back office stayed. We copy it, in sync, into our own database and build everything else on top: website, CRM, app and automations read the same source and say the same thing about the same person. We write to the back office only when it truly matters: booking, paying, signing up.

The ecosystem

Website, CRM and app: one system.

Three programs for three kinds of people — those looking for the club, those who work there, members — but one database. Data enters on one side and shows on the others at once; the back office stays, connected.

01A request from the website lands in the CRM, de-duplicated and assigned.

02The CRM sees it as an opportunity, with the person’s history.

03A booking from the app goes straight to the back office.

04Contracts, payments and check-ins from the back office are copied into the database.

05An alert from the CRM reaches the app as a notification.

Live

Real screens.

The website, the app and the tools as customers and staff use them today. Tap a screen to enlarge it.

Every channel is a dot.

The CRM joins them into one person.

Behind the login

Athlon Club 4.0

What you only see from inside — the CRM, the member app — rebuilt and animated with anonymised sample data.

01

Memberships and revenue, live

Active by type, new and renewed against lapsed, revenue month by month and the payments arriving while you watch. All from the same database the app and website use.

crm.club.it/dashboard/membershipsSample data
Active memberships0▲ +6% vs last year
Revenue this month€ 0▲ +11%
Renewals this month0
New this month0▲ +12%

Monthly revenue (€)

DecJanFebMarAprMayJunJulAugSepOctNov

Active memberships by type

0active
  • Open49%
  • Fitness22%
  • Swimming17%
  • Junior12%
NewRenewedLapsed
Dec
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov

Latest payments

  • G
    Giulia R.Renewal · Open annual
    €590.00
02

The AI agent books the class

Inside the app the member writes as they would to a person. The agent understands, suggests the right slot and books it: no menus to learn.

Athlon assistant online

I’d like to do aqua gym tomorrow evening

HomeCalendarPaymentsProfile
03

The AI agent adds the card

“I need to change my card”: the agent takes you to the right place, the card is saved with the back office and the next fees go through it. No calls to the desk.

Athlon assistant online

I need to change the card for my fees

HomeCalendarPaymentsProfile
04

The AI agent prepares the call

Before the operator calls, the agent reads the record and sets the table: what the person did, why call them, which sentence to open with. The call starts informed.

crm.club.it/contacts/…Sample data
M
Marco BianchiOpportunity · Guest Pass expired · Rome Talenti
  1. Today
    Website visit“Adult swimming” page, twice
  2. Yesterday
    WhatsApp“Do you have evening classes?” · answered by the agent
  3. 3 d
    Guest Pass expired7 days · 4 check-ins · 2 swim classes
  4. 10 d
    Trial formInterests: swimming, gym floor

AI Prepare the call

Goal

Suggested opening

05

The management dashboard

Leads, trials, contracts and revenue read from the same database as the app and website. Management looks at one number, and it’s the same one the desk sees.

crm.club.it/dashboardSample data
Leads this month0▲ +18%
Active trials0▲ +9%
New contracts0▲ +12%
Conversion0%▲ +3 pt

Leads per week

Funnel

Leads100%
Contacted78%
Trial46%
Joined31%
06

The member app

Book classes, pay, get in with the wallet badge and follow the Athlon Health Score. A web app today, the same codebase for the App Store and Google Play.

Hi Giulia

Athlon Club

G
0Health Score
TrainFoodRecover

Your next class

Aqua gym

Tomorrow · 6:30 pm · Pool 2

Access badge
HomeCalendarTrainingProfile
07

Failed payments, solved

When a charge fails, the right email goes out with a link to pay or to change card. The desk only sees what’s left to do.

crm.club.it/pagamenti-fallitiSample data
Recovered€ 0,00
MemberFeeAmountStatus
MM. R.October fee€69.00Failed
LL. B.October fee€89.00Failed
FF. C.Swim course€120.00Failed
AA. G.October fee€69.00Failed
SS. P.Card expired€79.00Failed
08

WhatsApp, with an AI agent

It answers with the website’s information, points to the right form and hands the conversation to the desk when a person is needed. The history stays in the customer record.

Desk · WhatsApp AI agent on
09

The on-site kiosk

Assisted sales on the club’s panel: pick a membership, continue on your phone with a QR code, sign and pay. Staff guide, they don’t type.

1Choose2Your details3Sign & pay
Open annual€59 / month

Continue on your phone

✓

What we built

  • 01Website with an AI assistant: every request lands in the CRM, already de-duplicated
  • 02CRM with roles, permissions, time clock, tickets and operator log
  • 03iOS and Android member app: bookings, payments, Junior, wallet badge
  • 04Athlon Health System with Apple Health and Health Connect
  • 05WhatsApp Cloud API with an AI agent and a shared desk inbox
  • 06Card and SEPA payments, billing run, failed payments with pay-by-link
  • 07On-site kiosk for assisted sales and check-in
  • 08Tracked newsletters, push notifications, a daily log for management

Technology

Next.jsExpoSupabasePerfectGym APIWhatsApp Cloud APIAdyenGoCardlessn8nWeb Push

How it’s built

Under the hood.

Three applications, one database. The website, the staff CRM and the member app are separate projects, each with the right technology for its users, but they all read and write the same Postgres on Supabase. The PerfectGym back office is copied in there and kept up to date: pages read from the copy, and the back office is written to only to book, pay or sign up.

The architecture, layer by layer

01
Interfaces
Website · AstroStaff CRM · Next.js + ReactMember app · Expo + React NativeKiosk · the app’s kiosk modeWhatsApp
02
Logic
77 Edge Functions · TypeScriptShared SQL functionsNext.js API routesScheduled jobs · pg_cron + Vercel Cron
03
Data
Postgres on SupabaseAuthPrivate storageRow Level SecurityBack-office copy
04
External systems
PerfectGym APIAdyenGoCardless (SEPA)WhatsApp Cloud APIClaude · AnthropicApple Health · Health ConnectWeb Push

The pieces, one by one

01

Astro

The public website

HTML pages generated ahead of time and per-component CSS: they arrive ready, index well and open instantly. JavaScript only where it’s really needed, like forms and the assistant.

02

Next.js + React

The staff CRM

Pages are assembled on the server with the data already in; React handles the interactive parts. A middleware checks session and permissions on every request, and roles decide which sections show. Hosted on Vercel.

03

Expo + React Native

The member app

One TypeScript codebase for iOS, Android and web. With Expo Router every file is a screen and a deep link. Native modules for HealthKit, Health Connect, notifications, camera and files; builds and updates with EAS.

04

Supabase · Postgres

The core

Database, authentication, files and row-level access rules. The schema lives in 483 versioned migrations: every change is code, reviewable and repeatable. Key reads are SQL functions: CRM and app call the same one, so they say the same thing.

05

Edge Functions

Logic and connections

77 TypeScript functions running next to the database. The app talks to them, never straight to the back office: booking, paying, syncing, receiving payment and WhatsApp webhooks.

06

The back-office copy

Fast and independent

PerfectGym webhooks and scheduled syncs copy contracts, payments, bookings and check-ins. A read takes milliseconds and works even when the back office is slow or down.

07

Automation

What happens on its own

23 jobs in the database and 11 on Vercel: booking reminders every 5 minutes, expiring medical-certificate alerts, emails after the first visits, member status, refreshed dashboards, failed payments.

08

AI

Assistant and WhatsApp

The app assistant and the WhatsApp agent use a Claude model with the club’s information as context. They don’t make things up: they point to the right form or hand over to a person.

In numbers

77Edge Functions
483Database migrations
34Scheduled jobs
3Platforms from one codebase: iOS, Android, web