Racqt 1.5.1 is live — on the web, on iPhone and on Android. What you can see straight away is written up in the changelog: recurring bookings are fixed in the court calendar, a reminder arrives before every court booking, and you confirm or decline league matches directly in the match card.
This article is about the rest. Because the bigger part of this release is work you can’t see — and that you still notice every day.
New: safe on the go for young members
The community feed is now open to members aged 13 and over. Younger members continue to use everything around their club as usual: training, teams, court booking, club news and chat. This is only about the public social network, not about club life.
On the iPhone, Racqt asks the operating system for the age directly. You don’t have to enter a date of birth for this — Apple only passes on an age range, not a date. The actual decision is then made on our server, so the same rule applies on all devices.
Under the bonnet
One rule, one place
Who may invite a member? Who may block a court? Who may see someone else’s profile? Checks like these were in many places in the backend — each written separately, each slightly different. That’s exactly where the hard-to-pin-down bugs come from: one view allows something, the next forbids it, and nobody knows which is right.
In this release these checks have been consolidated. There’s now one place each for whether someone is a club administrator, whether someone is editing their own data or whether someone owns an entry. The same goes for booking limits: how many bookings someone is entitled to is decided in a single place instead of three. For you this means: the rules apply the same everywhere — in the app, in the portal and in the dashboard.
A date that means the same everywhere
An inconspicuous problem with noticeable consequences: the server calculated day boundaries in UTC, but you live in your time zone. Anyone who logged a meal after ten in the evening saw it on the next day — and the daily streak broke, even though nobody had done anything wrong.
All affected places now calculate with your local date. The entry just before midnight lands on the right day, and the streak continues.
A chat that doesn’t depend on the network
Team and club chat work offline-first: messages live on the device and are synced in the background. Until now, a connection error could still block this process — the chat then stayed empty even though the messages had long since arrived. That’s fixed: a network error is shown, but it no longer stops the chat. And where there really is an error, you see it instead of looking at an empty room.
Emails that no longer keep you waiting
Emails used to be sent in the middle of the request: anyone inviting a member waited until the email was out. Sending is now asynchronous and uses clean templates. Actions that trigger an email now feel done immediately — and if something goes wrong when resetting a password, you see it instead of getting nowhere.
Security nobody should notice
Three things that, ideally, stay invisible:
- When you sign in, the Android app checks that it’s really talking to a Racqt server. Until now this check only existed on the iPhone — now both apps decide using the same list of allowed addresses.
- Nine known vulnerabilities in third-party libraries of the web interface are closed, and in the backend we’ve raised several packages to secure minimum versions.
- We automatically check every build for secrets in the code, vulnerable dependencies and typical vulnerability patterns before it ships.
Tidying up pays off later
Less visible, but in the long run the most important: in the web interface we worked through 349 findings from our code checks — 19 of them affecting security or correctness. In the apps, dead endpoints and duplicate helper functions are gone, the iPhone app consistently uses SwiftUI’s modern state model, and screenshots of all Android views are compared automatically with every change.
That doesn’t change a single button today. It makes sure the next change comes faster and breaks something less often.
Updates without downtime
The web interface runs in two instances side by side. For a new version only one of them is restarted, and only once it answers again does the second follow. An update is therefore no longer a moment when racqt.app is briefly unreachable.
What now?
1.5.1 is already live on the web. The apps for iPhone and Android are now going into review at Apple and Google — as soon as they’re approved, your device will let you know by itself.
As always: almost everything here started as a wish in an email or in a conversation at the court. Please keep writing to us.
