Last updated
Garro is a service for recording and watching matches on sports club courts. Because the product films people, this policy tries to be specific rather than reassuring: it says what is stored, where, for how long, and what we cannot control.
On a recorded court but no account? The section If you are in a recording is for you: you can ask for a recording to be removed with the Report button under the video, or by email, without signing up.
The service is operated by HeapForge d.o.o., Kobilić 102, 10410 Kobilić, Hrvatska (OIB 38338170480). Contact: support@heapforge.hr. Full company details are in the Imprint.
There are two different roles here, and the difference decides who you should talk to:
The same address is our point of contact under the EU Digital Services Act, for authorities and for anyone using the service.
| Data | Why | Where it comes from |
|---|---|---|
| Email address, name, profile picture | Identifying your account and showing who owns a recording | You, through our sign-in provider Clerk |
| Club membership and role | Deciding what you are allowed to see and do | Created by a club administrator when they invite you |
| Invitation email addresses | Letting a club invite someone who has no account yet | Entered by a club administrator |
| Recording sessions: court, start and stop time, title, share token, play count | Running and showing the recording | Created when you start a recording |
| Recording metadata: length, club, court, visibility | Listing and playing back recordings | Created automatically when a recording finishes |
| Club matches: the two sides as the club enters them (usually the players' names), court, time, the referee the club names, and the score kept during the match | Announcing the club's matches, showing their score, and drawing it into the video | Entered by the club's staff and its referee |
| Administrative audit log: who did what, and when, with their email | Security, and being able to answer what happened to a recording | Written automatically on sensitive actions |
| Product usage events: sign-ups, recordings started and stopped, recordings ready, clubs created | Understanding how the product is used and fixing what does not work | Written automatically, with a pseudonymous user id instead of your email or name |
| Product analytics (PostHog): pages visited, with share links and recording ids removed from the address; the referring site and campaign (utm) parameters; a short documented list of actions such as starting sign-up, opening a share link or pressing share or download; browser, operating system and approximate location; and the product usage events above | Understanding how people find the service and where they get stuck | Your browser, only if you accept analytics in the cookie banner, and without cookies or anything stored on your device; and our backend, for the product usage events above; linked to a pseudonymous user id when you are signed in, never to your email or name |
| Support requests you send to a club through the dashboard: your message and when it was resolved | Handling the request | You |
| Demo requests from our marketing website: your name, club, email, phone if you give it, number of courts, sports and message | Answering your request and preparing an offer for your club | You, through the form; it arrives as an email in our mailbox and is not stored anywhere else |
These are absences we have engineered and intend to keep, not oversights:
The one number we do keep is a play counter on each video. It is a single integer on the recording. It is not tied to you, your device, or your address.
When a member starts a session, or a club's staff start an announced match, the court camera streams to our media server (hosted by Hetzner in Finland), which prepares the live stream for playback. Bunny.net delivers the live stream to viewers (Bunny CDN) and stores the recording (Bunny Stream). The media server keeps its copy only until the recording is ready at Bunny.net; our database holds only metadata and an identifier.
A recording of a court captures everyone on it, not only the person who pressed start, and it includes sound when the court's camera has a microphone. If you are on a court where a session is running, you are being recorded. Clubs are required to display a notice at every court that has a camera, and the member starting a session is required to tell the other people present.
A club can announce its matches ahead of time — for tournaments and competitions — with the two sides, usually the players' names, and may name a referee. For a public match, the names, court and time are shown on the club's event page and on the court page before it starts. During the match, the score kept by the club's staff or referee is drawn into the video on our media server, so the recording carries it too. The referee is never shown publicly. The club decides which names it enters and whether the match is public; for these, as for the footage, the club is the controller.
A session is titled with your name (or the first part of your email if you have not set a name) and the court. Anyone holding the share link, and any signed-in member browsing the club, can see it. Signed out visitors see only the court, club and time. You can change the name shown on your recordings in your account settings.
This section is for people who appear in a recording but did not start it: opponents, partners, coaches, people beside the court. You do not need an account for anything below.
As soon as we read it, we make the session private so it leaves every listing. We tell the club, and within 48 hours we tell you what was decided and why. Our default is to remove it: a recreational match is not a reason to keep someone on video who does not want to be. To confirm it is you, we may ask you to describe where you appear in the recording; we do not ask for ID.
We cannot reach a copy that someone has already downloaded through a share link. The same address takes reports of recordings you believe are illegal, under the Digital Services Act.
| What | Lawful basis |
|---|---|
| Running your account and showing you your recordings | Performance of a contract with you (Art. 6(1)(b) GDPR) |
| Recording matches on a club's courts | The club's legitimate interest in offering players recordings of their own matches (Art. 6(1)(f)), stated on the notice at every recorded court |
| Announcing a club's matches with the players' names, keeping their score and drawing it into the video | The club's legitimate interest in running and showing its tournaments and competitions (Art. 6(1)(f)). The club tells the players which names it shows and whether the match is public |
| Showing public sessions on the club's page and in the feed of public matches | Our legitimate interest in letting people find and watch clubs' public matches (Art. 6(1)(f)). Sessions are private unless made public, signed-out visitors never see who started one, and anyone in a recording can have it removed (see below) |
| Keeping an administrative audit log and securing the platform | Our legitimate interest in a service that is not abused (Art. 6(1)(f)) |
| Page statistics and product analytics in your browser (Vercel Web Analytics, Speed Insights, PostHog) | Your consent, given in the cookie banner (Art. 6(1)(a)). Off until you accept; you can withdraw it at any time from Cookie settings at the bottom of every page, which stops it immediately and does not affect what was collected before. A Do Not Track or Global Privacy Control signal counts as a refusal |
| Product usage events recorded by our servers, including the few account events forwarded to PostHog | Our legitimate interest in understanding and improving the service (Art. 6(1)(f)). Pseudonymous, never your email or name; you can object at any time by writing to us |
| Answering a demo request from our marketing website | Steps taken at your request before a possible contract (Art. 6(1)(b)) |
| Meeting accounting and legal obligations | Legal obligation (Art. 6(1)(c)) |
Where we or a club rely on legitimate interest, the interest has been weighed against yours in a written assessment. A summary is available on request, and you can object at any time.
We use a small number of providers, each under a data processing agreement. We add none without updating this list.
| Provider | What it does | What it sees |
|---|---|---|
| Clerk | Sign-in, passwords, verification and reset emails, bot protection; USA (EU–US Data Privacy Framework) | Your email, name, profile picture and sign-in activity |
| Convex | Our application database; stored in the EU (Ireland) | Everything in the table above except the video itself |
| Hetzner | Hosts our media server (Finland), which receives the camera stream, prepares it for playback and draws the score of a club match into the video | The video, while a broadcast runs and until the recording is stored at Bunny.net, the names and score of a club match while it runs, and viewers' connection data for live viewer counts |
| Bunny.net | Delivering live streams (CDN), storing and delivering recordings (Bunny Stream) and club images (Bunny Storage). Recordings and images are stored in Germany only; the CDN briefly caches what it delivers on servers worldwide | The video, club images, and the technical connection data of anyone watching them |
| Vercel | Hosts our website, our marketing website and club dashboard and, if you accept analytics, runs their cookieless page-view and speed statistics (Web Analytics, Speed Insights); USA | The technical connection data of every visitor, and page addresses with share links and recording ids removed |
| Sentry | Error monitoring for our website, club dashboard and media server; EU data region | Technical error data — the error, the page address with share links removed, browser and operating system — and a pseudonymous user id. Errors only: no performance measurements from your browser and no session recordings. |
| PostHog | Cookieless product analytics for our website, if you accept analytics, and the account events our servers send; EU data region (Frankfurt) | Page addresses with share links and recording ids removed, the referring site and campaign parameters, the actions listed above, browser, operating system and approximate location, and a pseudonymous user id when you are signed in. Your IP address is discarded, not stored. No session recordings. |
| Kuhada | Hosts our email, including the address you write to about your data or a recording; Croatia | The messages you send us and our replies |
| Resend | Delivers demo requests from our marketing website to our mailbox; EU sending region (Ireland) | What you enter in the demo form |
| Cloudflare | The anti-bot check on our sign-in forms (through Clerk) | The technical connection data of whoever uses the sign-in form |
| Only if you choose to sign in with a Google account | That you signed in to our service |
These providers may process data outside the European Economic Area. Where they do, transfers rely on the European Commission's Standard Contractual Clauses or an adequacy decision, such as the EU–US Data Privacy Framework.
We also disclose data where the law requires it — for example to a court or a competent authority acting within its powers.
| What | How long |
|---|---|
| Video recordings and live streams | 7 days, then deleted from Bunny.net and from our database by an automatic daily job |
| Recordings a club marks to keep | The club marks a recording to keep with a reason (for example an injury or a dispute). It is kept until the club releases it or deletes it — the 7-day deletion does not apply meanwhile |
| Session records, and the score kept during a session | Deleted together with the recording after 7 days |
| Club matches (names, referee, court, time) and players' booked slots | Deleted 7 days after the match or slot, with its recording; a match whose recording the club keeps stays as long as that recording |
| Account data (email, name, picture) | Until you delete your account, then erased |
| Club membership | Until you leave the club or the club is closed |
| Administrative audit log | 365 days |
| Platform event feed | 30 days |
| Product usage events (pseudonymous) | 400 days |
| Product analytics in PostHog (pseudonymous) | 12 months |
| Open invitations | Until accepted or revoked, or until the club is closed |
| Support requests to a club | Until one year after the request is resolved |
| Demo requests from our marketing website | Deleted from our mailbox within 1 year, unless the request leads to a contract |
| Reports about a recording (email, name, message) and our decision | 3 years after the decision, as the record of how it was handled |
| Aggregate usage totals (minutes per club per day) | Kept — these contain no personal data |
Deletion of a recording is real deletion at Bunny.net, not a hidden flag. What it cannot reach is a copy someone already downloaded through a share link.
You can ask us to:
Write to support@heapforge.hr. We answer within one month. For footage, we will pass a request to the club that controls it and help them answer. These rights are yours whether or not you have an account.
If you think we have got this wrong, you can complain to Agencija za zaštitu osobnih podataka (AZOP), Ulica Metela Ožegovića 16, 10000 Zagreb, Croatia — https://azop.hr.
You must be at least 16 to hold a Garro account. Younger players are often on club courts, and a recording will capture them. A club running junior sessions is responsible for handling that with the parents or guardians before it films anything, and should keep those sessions private. A club can switch a court to private only for junior sessions, so nothing recorded there can be made public, or switch off public recordings for the whole club. A parent or guardian can ask us to remove a recording of their child, without an account, as described in If you are in a recording; we treat those requests first.
If we change this policy we update the date at the top, and we tell you before anything that materially affects you takes effect.
The Croatian version of this document is the binding one for users in Croatia. This English version is provided for convenience.