Francesco De Giorgio Software engineer · Pisa, Italy
IT EN
Let's talk

Courts, courses and payments in one system.

Prenoo is the sports booking and club management SaaS I came up with, designed and built from scratch: courts, courses, members and payments in a single platform. It started from a problem every club knows by heart, a diary scattered across a notebook, a WhatsApp group and phone calls, and it sets out to actually close it.

The problem

Run a club and you know it: the diary lives in four places

Is the court free? Depends who you ask

A WhatsApp group for the members, a notebook behind the counter, calls from people who want the court at seven, and direct messages to the coaches. Each channel holds a piece of the truth and none of them holds the whole picture. Whoever is on the desk answers from memory, and by the end of the day memory is tired.

Two pairs on the same court

All it takes is one booking taken over the phone while somebody else is writing it into the notebook. The damage is not the wrong box on a grid: it is the look on the faces of two people who paid to play and are now standing courtside in their kit.

Fees to chase, history that evaporates

Who has settled up for the course, who still owes the second instalment, how often that member turned up last season. If the answer lives in one person's head or in a photo of a notebook page, it is not data: it is a memory. And memories do not add up at the end of the year.

What I built

One platform, built as a product

Prenoo is not a booking widget stuck onto a brochure site. It is a product made for the job of the people who open and close a club every day: conceived, designed and built from scratch, from the first line of the database to the last screen.

1

The calendar is the only source

Every court has its own availability grid, and that grid is the only one that counts. People booking see the slots that are genuinely free, with the right duration and closures already taken out. Double booking stops being something you have to avoid carefully and becomes something that cannot happen.

2

Courses and members next to the courts

A course is not a one‑off booking: it has a repeating schedule, a coach, a group of members and a fee. In Prenoo it lives in the same place as the courts, so how busy the club really is reads on one screen instead of across two spreadsheets and a chat.

3

The money closes where it starts

The payment is attached to the booking or to the enrolment, not to a parallel sheet. People pay online by card, or the takings get recorded at the desk: either way it stays written next to the thing that was sold, and at the end of the month there is nothing to reconstruct by hand.

Courts Courses Members Payments History

Under the hood

It looks like a calendar, it is really a question of rules

From the outside a booking system is a grid with coloured boxes. From the inside it is the most boring and most important question in the trade: who is allowed to do what, when, and what happens to the money when they do it.

Multi‑club by design

Every club has its own courts, opening hours, prices and users inside the same application, with no sight of anybody else's. Bringing a new club on board does not mean installing another copy of the software: it means configuring it.

Multi‑club architecture

Availability computed, not copied

Opening hours, slot length, one‑off closures, courses that take the court every week at the same time. Availability is what comes out of those rules put together, recalculated every time somebody opens the calendar, rather than saved once and then patched by hand.

Node.js · MongoDB

Roles and permissions

The manager sees everything, the staff see what they need to work the desk, the member sees their own profile and their own bookings. Permissions are not a settings screen full of tick boxes: they are checked on the server on every single request.

Roles · Permissions · API

Payments and admin area

Online payments go through Stripe, so the sensitive part is handled by people who do that for a living. In the admin area the manager finds bookings, courses, members and movements in the same place where they were created, with nothing to export first.

React · Stripe

Where we are

What nobody does by hand any more

Prenoo is live and it keeps growing. Every new feature comes from a request made by someone who actually runs a club, not from a wish list written at a desk, so I would rather tell you what changed in the working day than wave numbers around that would mean nothing to anyone.

Nobody asks whether the court is free any more, they look. The notebook is no longer the only place where Saturday's booking exists. The coach does not have to remember who has paid, because the fee is written next to the member. And when somebody asks to move their slot, the answer comes straight away, not after three messages and a phone call.

calls to check if the court is free/ the notebook behind the counter/ double bookings/ fees to chase

The biggest change, though, is the history. A club that knows which time slots fill up, which courses hold and which do not, and who really comes back, stops deciding on gut feeling. That data simply did not exist before: now it piles up on its own, just by working. It is the same idea behind booking platforms and back offices, the service where this work turned into something I can build for you too, and the one I had already applied to a whole area with Ci vediamo in Calabria: make what is there visible first, and the data follows by itself.

What this means for you

The same setup, on your business

If you run a club

Padel, tennis, five‑a‑side, a gym or a sports school: the sport changes, the problem does not. Courts and courses to fill, fees to collect, people writing at all hours. Prenoo already exists and is live: it gets configured around your club instead of being rewritten from scratch, and if you need something it does not do yet, we work out together whether it is worth building.

Courts · Courses · Members · Payments

If your business has the same problem

The knot is not sport, it is the pairing of calendar and money: a resource booked in time slots and a payment to close without chasing anyone. I have built the same setup for beach clubs, with sunbeds, orders and online payments. If your day looks like that, the hard part has already been solved once.

Node.js · MongoDB · Stripe