Privacy Policy
The Slovak version is authoritative. We take your privacy seriously. This policy explains what personal data we process about you as a user of the Ligovo platform, for what purposes and on what legal basis, to whom we disclose it, and what rights you have towards us.
1. Data controller
The controller of personal data within the meaning of Regulation (EU) 2016/679 (“GDPR”) and Act No. 18/2018 Coll. of the Slovak Republic is:
Hardcode Solutions s. r. o.
Company ID (IČO): 57264431
Tax ID (DIČ): 2122634866
VAT ID (IČ DPH): SK2122634866
Registered office: Cabanova 2195/18, 841 02 Bratislava – mestská časť Dúbravka, Slovak Republic
Registered in the Commercial Register of Mestský súd Bratislava III, Section: Sro, Insert No. 192575/B
2. Contact
You may send any requests, questions and notices regarding personal data protection to info@hardcodesolutions.com.
3. What Ligovo is and who this policy covers
Ligovo is an online platform for team managers, players or tournament organizers that lets you manage teams, build line-ups, manage players and track statistics. This policy applies to all processing of personal data of visitors and registered users of the web application ligovo.app.
4. What personal data we process and where we obtain it
- Identification and contact data: first name and surname, email address, and optionally a phone number.
- Account data: login email address and a hashed password, and your assigned role in the application.
- Data from Google sign-in: if you sign in with Google, the data listed in section 18.
- Profile and onboarding data: date of birth, nickname, height, weight, jersey size and your registration intent (team manager, player or tournament organizer).
- Emergency contact: if you provide one as a player, the contact details of an emergency contact.
- Organizer data: if you provide them as an organizer, your organization name and a contact email and phone number for communicating with teams. We do not show them on a public page.
- Profile picture: if you upload one or sign in with Google, the reference to your profile image.
- Session and security data: the IP address and browser identifier (user agent) associated with your login session.
- Diagnostic data: technical data generated when an error occurs in the application - for example browser and device type, application version, the error record, the address of the page on which the error occurred, and the IP address the report was sent from.
- Notification subscription data (push): if you turn notifications on for a device, the address of your browser's delivery service, the encryption keys needed to deliver a message, the browser identifier (user agent), and the time you last opened the application on that device.
- Technical preferences: your chosen theme (light/dark) and interface language, stored in your browser’s local storage.
- Communications: the content of the messages we send you - transactional messages related to your account and the operation of the service (for example verification and password-reset emails), service and security notices, which cannot be switched off, and occasional announcements about the service, which you can switch off in your notification settings.
- Support requests: the subject and category of the request (bug, question, idea or other), the messages you write to us, up to three images per message, and the setting for whether we also send you our replies by email. Along with the request we automatically receive the app screen you opened it from (its address only, without query parameters), your browser identifier (user agent) and the app version. If you opened the request from the screen of a team you are an approved member of, we also record that team. Our replies show the first name of the person answering for Ligovo. Images are not publicly accessible; only you and Ligovo administrators can see them.
- Feedback: the text you sent us through the former in-app feedback form, the screen you sent it from, your browser identifier (user agent), the app version, any ratings of the app on a 1 to 5 scale, and whether you allowed us to contact you by email about it.
We generally obtain this data directly from you when you register, verify your email address, complete your profile, request to join a team, and use the service. If you sign in with Google, part of it comes from Google (see section 18). Emergency contact details come from the player who enters them. Only provide an emergency contact if you are entitled to share their details and have informed them appropriately.
Your email address and password (or a Google account) are necessary to create and use an account. Your first name and surname are necessary to complete your profile during onboarding. If you do not provide these, you cannot create an account or complete the relevant part of the service. The remaining profile data is optional; not providing it may limit the feature it relates to.
5. Purposes and legal bases of processing
- Providing the service and performing a contract (Art. 6(1)(b) GDPR) - creating and managing the account (including sign-in with Google), onboarding, team and player management, and the other features you request.
- Legitimate interests of the controller (Art. 6(1)(f) GDPR) - security, protection against abuse and attacks, bot protection (Google reCAPTCHA), rate limiting, session logging, security analysis, handling and answering your support requests, improving the service based on the feedback you sent us through the former feedback form, replying to you by email about it if you asked for that in the form, and occasional announcements about the service sent by email. You can object to those announcements at any time by switching them off in your notification settings. Every reply we send to a support request also appears among your notifications in the app. We also send it to you by email unless you turn that off for the request; you can change the setting at any time on the request's page.
- Legal obligations (Art. 6(1)(c) GDPR) - to the extent required by generally binding legal regulations (for example accounting and tax records), or notifying you of a personal data breach where the law requires it (Art. 34 GDPR).
- Consent (Art. 6(1)(a) GDPR) - for device notifications (push) only. You turn the subscription on yourself, separately on each device, and can turn it off at any time; see section 13.
Apart from device notifications, we do not process personal data on the basis of separate consent, and we do not carry out automated decision-making or profiling with legal or similarly significant effects.
6. Data visible to other users
Team-related data is made available only to signed-in members of that team, to the extent needed to use its features. Apart from tournaments, described below, team data is not public and is not accessible to members of other teams. Before approving a membership, a team manager can see the data provided in the join request in order to decide on it.
If your team's manager enters you in a tournament, the organizer sees your jersey number and, unless the manager hides it, your name. Your name appears publicly on the tournament's pages only if you have turned on showing it (it is off by default) and the manager has not hidden it; otherwise only your jersey number appears. A team manager's contact details (name, email address and phone number) reach the organizer only if the manager chooses to share them.
7. Recipients and processors
We do not sell or rent your personal data. Apart from what other users of the service can see as described in section 6, we disclose or entrust it, to the necessary extent, only to these processors:
- Brevo and Scaleway - delivery of transactional, authentication and service emails (email verification, password reset, notification emails and service announcements).
- Google LLC - protection of forms against bots through the Google reCAPTCHA service.
- Hosting provider - the server infrastructure on which the application and database run (a private virtual server).
- Hetzner Online GmbH - storage of encrypted backups of the application’s data in a data centre in Finland. The backups are encrypted before they leave our server, so Hetzner cannot read their contents.
- Sentry (Functional Software, Inc.) - monitoring of application errors and reliability in the production environment.
- Notification delivery services - depending on the browser you use, this is Google LLC, Mozilla Corporation or Apple Inc. They deliver notifications to your device. The content of a notification is encrypted in your browser before it is sent, so these services cannot read it; they do see the subscription address, the delivery time and your device's IP address.
When you sign in with Google, Google acts as an independent controller, not as our processor (see section 18).
If you turn on the calendar link (a calendar subscription), we serve your event schedule (times, places, names and descriptions of events) at your request to the calendar service you add the link to. If you manage a team, the link also carries that team's event schedule. This is processing you ask for yourself as part of the service, not consent. The link is private, you can replace it with a new one or turn it off at any time, and we automatically delete links that have gone unused for 90 days.
8. Sentry error monitoring
In the production environment we use the Sentry service to monitor application errors and reliability. A report is sent only when an error occurs in the application - we do not use it to track your ordinary use of the service.
When an error occurs, Sentry may process the technical diagnostic data needed to analyse it - for example browser and device information, the application version and the error record. The report also includes the address of the page on which the error occurred and a record of the few preceding steps in the application. Before the report leaves your browser we automatically strip single-use security codes and email addresses out of those addresses. Sentry also records the IP address the report was sent from.
We use Sentry on the basis of our legitimate interest in the security, maintenance and improvement of the service, and we apply the principle of data minimisation when configuring it.
9. Transfers to third countries
Emails are delivered through the Brevo and Scaleway services, which store and process the data on infrastructure in the European Union (Brevo in France, Germany and Belgium; Scaleway in France); we therefore do not transfer them outside the European Economic Area. Google and the notification delivery services (Google, Mozilla, Apple) are providers based outside the European Economic Area (in the United States). Diagnostic data sent to Sentry is processed in the provider’s European region (Germany); its parent company is established in the United States, so access from a third country may occur. Where personal data is transferred to processors outside the European Economic Area, this takes place with an adequate level of protection, in particular on the basis of the Standard Contractual Clauses approved by the European Commission and other safeguards under Art. 46 GDPR.
10. Retention of personal data
- Active account: we keep account and profile data for as long as your account exists.
- Link to a Google account: kept while the account exists and deleted when the account is deleted (section 18).
- Unverified registrations: we keep registration data that has not been verified for at most 14 days from registration; after this period it is deleted.
- Sessions and security records: session data (IP address, user agent) is kept for the duration of the session, or for the shortest time necessary for security purposes.
- Sentry diagnostic records: kept for as long as needed to analyse and fix the error, protect the service and prevent the incident recurring.
- Notification subscriptions: kept until you turn notifications off on that device. A subscription is also removed when you sign out, when the delivery service reports it as invalid, and automatically if you have not opened the application on that device for more than 60 days.
- Calendar link: we keep it until you turn it off. It is also deleted when your account is closed, and automatically if it goes unused for 90 days.
- Broadcast notification records: when we send an important notice by email (for example a security incident notification), we keep a record of the message and its recipients, including manually entered addresses, for 3 years from the send as documentation of compliance with our legal obligations (Art. 17(3)(b) GDPR). This record is not deleted when an account is deleted. Manually entered addresses in sent records are removed after the 3 years; unsent drafts of such notices are deleted after 180 days without an edit.
- Support requests: when you close your account, we close your unresolved requests. After the account is erased, their subject and messages stay, but without your name. We delete the screen address, browser identifier and app version sent with them, as well as every image on your requests, including images added by Ligovo administrators, and we stop sending replies by email.
- Feedback: feedback sent through the former feedback form is kept for as long as your account exists; after the account is erased the text and any ratings stay, but are no longer linked to you.
Closing and deleting your account. You may close your account at any time directly in the application, in your profile settings. A closed account can be restored within 30 days; after that period we permanently delete or anonymise your personal data so that it can no longer be linked to you - including any profile picture. You can also request immediate deletion without waiting for that period to elapse. For a detailed breakdown of what happens to each kind of data when an account is closed and deleted, see Closing and deleting your account. Copies of data remain in our backups after deletion: on our server for up to 7 days, and in encrypted off-site backups for up to 6 months. They are protected, deleted automatically when that period ends, and used only to recover from a failure; if we ever have to restore from a backup, we repeat every deletion made since it was taken.
11. Cookies, local storage and technical identifiers
To keep you signed in we use a strictly necessary Better Auth session cookie. It serves solely to authenticate you and secure the service; in production it is set as HttpOnly, Secure and SameSite=Lax. This cookie is essential for your account to work, so we do not need separate consent to use it. Ligovo does not use marketing cookies or third-party tracking cookies.
If you turn notifications on, your browser registers a service worker on your device and stores the subscription data. These serve only to deliver notifications and are discarded when you turn the subscription off. The application does not use the service worker to cache pages or to track how you move through it.
We store only your preferences in your browser’s local storage - your chosen theme (light/dark) and interface language. The IP address and user agent are processed in connection with the login session and the security of the service, and the user agent also in the cases described in section 4.
12. Google reCAPTCHA
To protect registration, sign-in and password-reset forms against automated abuse we use the Google reCAPTCHA service. When you use these forms, Google may collect the data needed to assess whether you are a real person. The service is provided by Google LLC and is subject to its Privacy Policy and Terms of Service. On ligovo.app, reCAPTCHA also protects the form a team uses to apply for a tournament (section 19); there the service loads only once you start filling in the form, and no other page of ligovo.app loads it. reCAPTCHA is active only in environments with the relevant key configured (production); in local development and testing the protection is disabled.
13. Device notifications (push)
The application can send notifications straight to your device's operating system. The subscription is optional and is turned on separately for each device - you enable it in the application and then confirm it in the browser. Nothing is sent without that confirmation.
To deliver a notification we store the subscription address issued by your browser, the encryption keys, the browser identifier and the time you last opened the application on that device. The notification itself (a heading and a short line of text) is encrypted in your browser, so the delivery service cannot read it.
You can cancel the subscription at any time - by turning notifications off in your notification settings, or by revoking the permission in your browser or operating system settings. Cancelling withdraws your consent; this does not affect the lawfulness of processing carried out before the withdrawal. A subscription also ends when you sign out, and automatically after 60 days without opening the application on that device.
14. Security of personal data
We apply appropriate technical and organisational measures to protect personal data. These include encrypted transmission over HTTPS, access control through sign-in and in-app permissions, protected session management, and measures against automated abuse and excessive request volumes. We keep these measures appropriately up to date as the service and the risks evolve.
15. Data subject rights
Within the scope of the GDPR and Act No. 18/2018 Coll., you have the right to:
- request access to your personal data,
- request the correction of incorrect or incomplete data,
- request the erasure of data (“right to be forgotten”),
- request the restriction of processing,
- exercise the right to data portability,
- object to processing based on legitimate interests,
- withdraw your consent to device notifications at any time - by turning notifications off in your notification settings or revoking the permission in your browser; this does not affect the lawfulness of processing carried out before the withdrawal,
- lodge a complaint with the personal data protection supervisory authority.
Send requests by email to info@hardcodesolutions.com. We handle requests without undue delay, as a rule within one month of receiving them; we may extend that period appropriately where the GDPR allows.
16. Contacting the controller and lodging a complaint
If you believe we have processed your personal data unlawfully, you may lodge a complaint directly with us, or contact the competent supervisory authority - the Office for Personal Data Protection of the Slovak Republic, Hraničná 12, 820 07 Bratislava 27, Slovak Republic (dataprotection.gov.sk/uoou).
17. Adults only (18+)
Ligovo is intended exclusively for persons older than 18 years. By registering an account you confirm that you meet this condition.
18. Signing in with Google
If you choose to create an account or sign in with your Google account, Google sends us the following data after you confirm on Google's consent screen:
- your name (full name, first name and surname),
- your email address and whether Google has verified it,
- the address of your Google profile picture,
- your Google account identifier.
We request only the basic sign-in permissions (openid, email, profile). We get no access to your Gmail, contacts, calendar, Google Drive files or any other Google service, and we never learn your Google password. When you sign in, Google also issues short-lived sign-in tokens. We do not use them to access any Google service, and any we hold are deleted together with the link to your Google account. We do not request long-term (offline) access to your Google account.
How we use it.
- We use this data to create your Ligovo account and sign you in, to pre-fill your first name and surname in your profile, and to show your Google profile picture as your avatar until you replace it with your own.
- Your email address is your login, and we use it for the account-related messages described in section 4.
- You can change your name and profile picture in the application at any time. Later changes to your Google account are not copied over.
- We do not use data received from Google for advertising, we do not sell it, and we do not use it to build profiles or to train artificial intelligence models.
Sharing.
- We do not sell data received from Google. Apart from what other users of the service can see, as described below and in section 6, we do not transfer it to third parties, except to the processors listed in section 7, to the extent needed to run the service. The data is stored with our hosting provider.
- Within a team, the other members can see your name and profile picture, and the team manager can also see your email address, as described in section 6.
- If your team's manager enters you in a tournament, the organizer sees your name unless the manager hides it, and it appears publicly only if you have allowed it; see section 6. A team manager's contact details reach a tournament organizer only if the manager chooses to share them.
- While your avatar is your Google profile picture, it is loaded directly from Google's servers, so Google can see the IP address of anyone viewing it. Uploading your own picture in your profile avoids this.
Protection. The data travels over encrypted connections (HTTPS) between your browser, Google and our servers. It is stored in a database that is not publicly accessible, and access is limited to the service itself and to authorised personnel. See also section 14.
Retention and deletion.
- We keep the data for as long as your account exists.
- When your account is deleted, we delete the link to your Google account, including the identifier and any sign-in tokens, and remove the reference to your profile picture.
- You can delete your account in your profile settings: immediately, or by closing it, in which case it is deleted after 30 days (see section 10). You can also ask us to delete your data at the address in section 15.
- You can revoke Ligovo's access to your Google account at any time at myaccount.google.com/connections. This stops sign-in with Google, but it does not delete your Ligovo account.
When you sign in, Google processes your data as an independent controller, under its Privacy Policy.
Ligovo's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
19. Tournament applications and the decision on player names
A tournament organizer can share an application link. Through it, a team without a Ligovo account applies for the tournament using a form on ligovo.app.
- What the form collects: details of the team (name, short name, country, town, home rink, note), the contact person (name, email address, phone and language for communication), a declaration that whoever submits the form is the team's contact person or has their permission to submit their details, and an optional message for the organizer. The form does not collect player names.
- Controller and recipient: the application is meant for the tournament organizer, who is the controller of it and decides on the application. The form names the organizer. Ligovo delivers the application to the organizer and stores it on their behalf as a processor.
- Purpose: the organizer's review of the application and communication with the team about taking part in the tournament.
- Legal basis: the organizer processes the application to take steps, at the team's own request, before entering into an agreement on the team taking part in the tournament (Art. 6(1)(b) GDPR), and, insofar as the data concern a contact person who is not a party to that agreement, on the basis of the organizer's legitimate interest in organizing the tournament and making arrangements with the team (Art. 6(1)(f) GDPR). Protecting the form against abuse rests on legitimate interest (section 5).
- Retention: an application the organizer does not decide on is deleted automatically after 90 days. If the organizer accepts the application, the team and contact details are copied into the organizer's own team list. From then on the organizer manages them, and the 90-day deletion no longer applies to them.
- No confirmation email: we send no email after an application is submitted; the page shown after submitting is the confirmation. If you apply for the same team again from the same email address, the organizer sees the first application.
- Continuing in the app: after submitting the application you may create a Ligovo account. If you create it with the same email address as the contact person's, the app offers you the application's details to prefill your account and team, and the team's application sent from the app can replace this one; the contact person's phone number then carries over to that application.
- Protecting the form: the form is protected by Google reCAPTCHA (section 12), which loads only on your first interaction with the form.
Deciding on player names through a link. If the organizer enters a team into the tournament themselves, or accepts its application, they can email the team's contact person a link through which the contact records the decision on showing player names, with the declaration, themselves. The link is valid for 7 days and can be used once. The organizer then sees the decision, the name and role of the person who made it, the time it was confirmed and the address the link was sent to. The legal basis for recording the decision on player names, which the organizer requested, is the organizer's legitimate interest in knowing the team's own decision on publishing its players' names (Art. 6(1)(f) GDPR).
20. Changes to this privacy policy
We may update this policy from time to time, in particular if the scope of processing or the features of the service change. The last-updated date is shown in the document header. Material changes will be brought to your attention in an appropriate way within the service.