Last updated: October 19, 2026
1. Who We Are
Fullcourt Training is operated by Frej Dahl Linneke (“FULLCOURT TRAINING”, “we”, “us”, or “our”).
This Privacy Policy explains how we collect, use, disclose, and retain personal information when you use the Fullcourt Training website, iOS app, Android app, and related services (together, the “Services”). Feature availability may differ between the website and mobile apps.
Data controller: Frej Dahl Linneke
Country: Denmark
Contact: contact@fullcourt-training.com
2. Information We Process
The information we process depends on the features you use. We receive information from you, from your use of the Services, and, where relevant, from authentication and payment providers, the managers of your organizational access, and other users who report your content or create a block involving your account.
Account and authentication information
We process your email address, account/user ID, authentication and account-status information, account creation and sign-in timestamps, confirmation and update information, Premium status, and information needed to maintain your login session. We may also process profile or authentication metadata associated with your account, where present.
Authentication, passwords, and session credentials are handled through Supabase’s authentication systems.
Bookmarks, comments, reactions, and reports
We process the drills and plays you bookmark, comments you submit, reactions you make, and the account identifiers associated with these records. Comment records include their content, the relevant page, creation time, and moderation information, such as reported or verified status.
Bookmarks are account-specific and are not published as a public bookmark list. Comments and reactions are public features, subject to moderation and personal visibility preferences.
When you report a comment, we verify your signed-in account, check the selected comment and its author, and flag the comment for moderation. The app's Report user control reports the selected comment and linked author. The current in-product report record is the comment's moderation status and author relationship; it does not create a separate report entry identifying the reporter or containing a free-text reason. Authentication, request and rate-limit information may nevertheless be processed as described below. A report does not automatically suspend the author, and a previously reviewed comment can be reported again.
If you report content or request review by email, we process your email address, message, relevant content links, and any other necessary information you supply to assess and respond to the concern. Avoid including unnecessary sensitive information. The in-product reporting control does not notify the author of the reporting user's identity; this is not a guarantee that every report or related correspondence can remain confidential where disclosure is required by law or necessary to handle the matter lawfully.
New comments undergo an automated check against a list of disallowed English and Danish words before publication. A match can reject the submission and ask you to edit it. This is a limited word-list check, not a contextual assessment of all harmful content or a corresponding text filter for every Plan or Custom Play. If a comment is rejected by this check, it is not saved as a posted comment. Technical request or security information is handled separately as described below.
Technical account identifiers, including account UUIDs, may be accessible in connection with comments, reactions, Practice Plans, or other public service data. You should not treat your account UUID as confidential information. Public availability does not mean that your email address is displayed alongside that content.
Personal blocking and unblocking
When you block another account, we store your account identifier, the blocked account's identifier, and the time the block was created. The personal-block record does not include a reason field. We use that relationship to apply your content-visibility preferences when you are signed in and to let you review and remove outgoing blocks through Blocked users in the comments interface. These controls do not require Premium.
Personal blocks hide the blocked account's comments, reactions, Practice Plans and Custom Plays from your signed-in view where those features apply the block. Your choices are saved to your account for use across supported clients. Another open screen or device may need to refresh or reopen before a change appears.
Your personal block list is not a public list. The block-management interface returns your outgoing blocks, using account identifiers and creation dates; it does not give users an incoming list of everyone who blocked them. Group-manager tools do not expose members' personal block lists. Authorized Fullcourt Training personnel and infrastructure providers may process the records as necessary to operate, support and protect the Services.
The feature does not send a block/unblock notification to the other person, although they may infer a change from what is visible. Blocking is directional content hiding, not a mutual privacy barrier or a global ban. It does not prevent the other person from viewing your public content, make Plans or Plays private, or remove the content. Public content remains accessible when logged out. Blocking does not itself submit a report, change a subscription, or end a group membership.
Personal blocks are distinct from the group-redemption blocks described below. Their retention and deletion are explained in Section 6.
Practice Plans, previously called Collections
Practice Plans let you organize drills, plays, your own Custom Plays, and standalone notes into an ordered training plan. Some URLs and technical records continue to use the name “Collections”.
We store a Plan’s title, description, owner/account relationship, public identifier, creation and update timestamps, ordered items, drill and Custom Play references, standalone and attached notes, and optional practice durations. We also maintain any relationship identifying a Plan as highlighted. Total planned time is calculated from the item durations.
Every saved Practice Plan is public. There is no private, draft, or archive mode for saved Plans. Its title, description, notes, ordered content, and durations may be viewed by other people, including people without accounts. Practice Plan URLs are included in the website sitemap, and Plans may be indexed by search engines. We may manually highlight selected Plans for public discovery.
Premium access is required to create, edit, reorder, or duplicate a Plan. Losing Premium does not make an existing Plan private or remove its public URL. Owners can permanently delete their Plans even without Premium.
Sharing a Plan does not remove the access restrictions on FULLCOURT TRAINING’s Premium drills or media. This does not make your own Plan notes or other public Plan information private.
Custom Studio and Custom Plays
Custom Studio lets you create basketball drill and play documents (“Custom Plays”). We store the title, description, owner/account relationship, public identifier, creation and update timestamps, and the saved play document.
The play document can contain court or workspace settings; player, ball, and cone objects; object labels and positions; movement paths and their appearance; sequential animation steps; step delays and durations; and text or drawing annotations. These positions and paths describe the diagram you create, not a device’s physical location.
Saved Custom Plays are unlisted, not private. Each existing Custom Play has a public direct URL and publicly readable title, description, and play document. Viewing it does not require the owner’s permission, a login, or Premium access. Public Custom Play data does not include the account-owner ID or internal creation and update timestamps.
Individual Custom Play pages are omitted from the website sitemap and ask search engines not to index them. These measures are not access controls or a guarantee against discovery, copying, or indexing. We may manually highlight selected Custom Plays in Custom Studio, and a Custom Play can also be displayed in a public Practice Plan.
Premium access is required to create or edit Custom Plays. Losing Premium does not remove existing Plays or their public links. Owners can permanently delete their Plays without Premium. There is no private, draft, archive, or separate publication-approval state for saved Custom Plays.
How Practice Plans and Custom Plays are linked
You can add your own Custom Plays to your Practice Plans. A Plan stores a live reference to the Play, not a separate copy of its title, description, or play document. Editing a Custom Play therefore changes the version shown in Plans that reference it.
Deleting a Custom Play removes the Play and makes its direct URL unavailable. A referencing Plan can retain the item’s position, attached note, and practice duration, but displays an unavailable-item message instead of the deleted Play. Delete or edit the Plan separately to remove personal information in its notes. Deleting a Plan does not itself delete a separately saved Custom Play.
Searches and unsaved editor information
Search terms and selected filters are processed to return matching drills and plays. Practice Plan changes and Custom Studio documents are saved through an explicit create, update, or save action, not through server-side draft autosaving.
Unsaved editor state is held in the active browser session. Custom Studio’s undo/redo history is local to the open editor and is not a persistent account history or cloud backup. Leaving or reloading the editor may lose unsaved work.
Group codes and organizational access
If you redeem a group code, we process the submitted code, the group you join, your email address and account ID, membership dates and status, Premium-access grants and removals, entitlement and synchronization information, and relevant operational history. We may also process membership-end reasons, blocks on future redemption, block and unblock reasons, and the related dates and manager actions.
Assigned group managers may see your email address, account identifier, current or former membership status, membership history, entitlement status, relevant block information, and other information necessary to administer the group’s Fullcourt Training access. Managers are permitted to use this information only for that purpose. These group-access records are separate from personal content blocks; group managers do not receive a member's personal block list through their manager role.
If you manage or arrange group access, we also process your assignments and administrative actions, together with relevant group, deal, renewal, and business-payment information. Managers must not place unnecessary personal or sensitive information in administrative reasons or notes.
Purchases and subscriptions
We process subscription and purchase status, product and entitlement information, renewal and expiration dates, cancellation and promotional-access information, transaction and payment identifiers, and information needed to reconcile payment-provider records with Premium access.
RevenueCat manages Premium entitlements across platforms. Your FULLCOURT account identifier is used to associate entitlements with your account and may be passed to RevenueCat’s subscription-management or purchase flows.
Web payments may involve RevenueCat and Stripe. Organizational payments may use Stripe payment links. Purchases through the iOS app are processed through Apple, and purchases through the Android app are processed through Google Play. We do not store your full payment-card number in the Fullcourt Training application database.
Newsletter
If you subscribe to our newsletter, we process your email address. Subscriptions are managed using Kit and use double opt-in. You may unsubscribe using the mechanism in our emails.
Newsletter subscriptions are separate from your FULLCOURT account. Deleting that account does not automatically unsubscribe you from the newsletter or delete Kit’s records.
Testimonials
Testimonial submission requires a signed-in FULLCOURT account. We collect your display name, title or role, rating, testimonial text, and optional headshot, and link the submission to your account. New submissions are unpublished by default and reviewed by us; we manually decide whether to publish them.
We resize and convert an optional headshot for display and store it privately. Your own preview requires authentication. Public image delivery is available only while the linked testimonial is approved, published, and marked as having an image.
The form explains the proposed promotional use beside the submit button. Deliberately submitting that authenticated form is your affirmative consent to storing the testimonial and, if approved, publicly displaying your display name, title or role, testimonial, rating, and optional image for promotional purposes. Reading or acknowledging this Privacy Policy alone is not testimonial consent.
You can withdraw that consent and permanently delete the testimonial from your Profile, or contact us. Deletion removes the submission, publication state, and optional headshot as part of the deletion process. You may submit a new testimonial afterward. Account deletion and inactive-account cleanup also remove account-linked testimonials and their headshots.
Customer stories and editorial material
The website also supports customer stories and other editorial material. Where these contain personal information, we may process customer names, quotations, quote attributions, images, and information included in the story. Published stories are public and may be indexed by search engines.
These editorial records are managed separately from account-linked testimonials. Deleting an account or its testimonial does not automatically remove a separately managed customer story. Contact us about access, correction, objection, or removal concerning personal information in that material.
Communications
If you contact us, we process the information in your message and information reasonably necessary to respond. Business email and support communications are handled using Zoho.
Technical, security, analytics, and local-storage information
We may process IP addresses, browser and device information, request information, server and security logs, error information, rate-limit counters, and bot-verification information to operate and protect the Services.
We use Upstash for short-lived rate limiting. Depending on the action, counters may be based on an IP address, account identifier, or a combination involving a redeemed code. We use Cloudflare Turnstile for bot and abuse protection; verification can involve challenge tokens and technical information, including an IP address where supplied.
We use Simple Analytics for aggregate website analytics. We do not use personal information for third-party targeted advertising and do not sell personal information.
The website uses cookies or local browser storage for authentication and preferences, including display-theme settings. Mobile devices may use local storage for authentication sessions and application preferences. Browser or device controls let you manage local storage, but blocking or clearing it may affect sign-in and other functionality.
3. How We Use Personal Information
We use personal information to provide and authenticate accounts; deliver free and Premium content; operate bookmarks, Practice Plans, Custom Studio, comments, reactions, reporting, personal blocking and unblocking; save and display content you submit; manage subscriptions, payments, and organizational access; and respond to support and privacy requests.
We also use relevant information to moderate and organize public content, administer consented newsletters and testimonials, operate editorial website content, prevent fraud and abuse, maintain service reliability, comply with legal obligations, and establish, exercise, or defend legal claims.
Where the GDPR applies, our legal bases generally include:
Performance of a contract: processing necessary to provide your account, requested content features, Premium subscription, or organizational access, including saving and displaying content as described for the feature you choose.
Consent: newsletter subscriptions, testimonial submission and promotional display, and other processing for which we specifically request consent. You can withdraw consent without affecting the lawfulness of processing before withdrawal.
Legitimate interests: operating, securing, moderating, and improving the Services; administering organizational relationships; organizing and highlighting public training content; and maintaining appropriate business and dispute records, where those interests are not overridden by your rights and interests.
Legal obligations: processing or retaining information where required by applicable law, including relevant accounting obligations.
For personal block relationships, comment reporting, automated language checks, and moderation review, our legitimate interests are enabling users to control the content they see, addressing abuse and unlawful material, protecting users' rights, and maintaining a safe and usable service. We limit this processing to information needed for those purposes and consider the interests and rights of the people concerned. Where a specific moderation or disclosure duty is imposed by law, processing necessary to meet that duty is based on the legal obligation. You may object to processing based on legitimate interests as explained in Section 7.
Information necessary for an account or requested feature must be provided for us to supply that feature. Newsletter subscriptions, testimonials, and optional content are voluntary. Acknowledging this Policy is not blanket consent to all processing.
The Services use automated checks for matters such as Premium eligibility, group-code access, synchronization, request limits and the comment-language check described in Section 2. Personal content filtering follows the block choices made by the signed-in user. These checks can refuse an action or hide content; a personal block or comment report does not itself impose a service-wide account ban. Contact us if you believe a rejection, access restriction or moderation decision is incorrect or you wish to request review.
4. Service Providers and Recipients
We use the following providers for relevant parts of the Services:
Hosting and application infrastructure: Supabase for databases, authentication, server functions, and file/media storage; Netlify for website hosting and infrastructure; and Expo/EAS for mobile build and distribution infrastructure.
Payments and subscriptions: RevenueCat for Premium entitlement and subscription management; Stripe for web and business payments; Apple for iOS distribution and in-app purchases; and Google Play for Android distribution and in-app purchases.
Email and communications: Kit for newsletter subscriptions and email marketing, and Zoho for business and support email.
Security: Cloudflare Turnstile for bot and abuse prevention, and Upstash for rate limiting.
Analytics and search information: Simple Analytics for aggregate website analytics, and Google Search Console for website search-performance information.
Video delivery: YouTube for free videos using privacy-enhanced embeds. YouTube may still receive technical information when embedded content is loaded or used. Premium video and other media may be delivered through Supabase Storage.
Public content is available to visitors and other recipients as explained in Section 2. Assigned group managers receive the access-administration information described there. Payment platforms and other providers may also process information for their own purposes under their applicable privacy notices.
We may disclose information where required by law, to protect the Services or other people, or in connection with legal claims. We do not sell personal information.
5. International Transfers
Some providers operate internationally and may process information outside Denmark or the European Economic Area.
Where required by applicable data-protection law, transfers use an applicable legal mechanism, such as an adequacy decision, contractual safeguards, or another lawful mechanism. Contact us for information about safeguards relevant to your personal information and how to obtain a copy where applicable.
6. How Long We Keep Information
We retain personal information only as long as reasonably necessary for the purposes described in this Policy or as required by law.
Accounts and saved content
Account information is generally retained while your account exists. Saved Practice Plans, Custom Plays, bookmarks, comments, and account-linked testimonials are generally retained until you or we delete the relevant records, or your account is deleted, subject to the distinctions below.
Non-Premium accounts may be automatically deleted after two years without a recorded sign-in. The current rule uses the authentication system’s last sign-in timestamp, or the account creation date if there is no recorded sign-in; it is not a complete measure of activity in every feature. No advance warning is guaranteed.
Accounts currently marked as Premium are excluded from this automatic inactivity rule. You may manually delete your account regardless of Premium status. Inactivity cleanup applies the same content-deletion rules as manual account deletion.
Personal blocks and moderation information
A personal block relationship is kept while the block is active. Unblocking removes that relationship from the active application database. It is also removed when either the blocking account or the blocked account is deleted, including through inactive-account cleanup. Unblocking does not erase comments, submit or withdraw a moderation report, or change a group-redemption block.
A comment's reported/verified status is part of the comment record and may change during moderation. Deleting the comment, including deletion of its author's account, removes that active comment record. Deleting a reporting user's account does not by itself withdraw a report or remove another user's comment: the in-product flag is attached to the comment, not to a separate reporter record. Correspondence or records separately needed to handle a complaint, comply with law or establish, exercise or defend legal claims are subject to the retention criteria below.
Other records
Newsletter information is retained until you unsubscribe or it is otherwise deleted, subject to suppression and legally necessary records. Support correspondence, business records, transaction information, and security or dispute records are retained for the period needed to handle the relevant matter, meet legal obligations, prevent fraud, or resolve disputes.
Short-lived rate-limit counters expire automatically under their configured retention windows. They may remain temporarily after account deletion rather than being removed immediately by the account-deletion process.
We may keep limited records of deletion operations, including their timing, status, and error category, to complete retries and document the process. A temporary target account identifier is removed from those operation records when the authentication account is deleted.
Separately managed customer stories and shared organizational records are not governed solely by the lifespan of a user account. Requests concerning personal information in those records can be made using Section 7.
What happens when you delete your account
You can initiate deletion using Delete account in the native app's Profile screen or Profile → Advanced → Delete account on the website. Follow the confirmation steps shown. Contact us if the control is unavailable or you need assistance. Once the deletion process completes successfully, the following applies to active Fullcourt Training application systems:
Deleted: your Supabase Auth account and profile; account-linked testimonial and optional headshot; bookmarks; authored comments; owned Practice Plans and their items, notes, durations, ordering, and highlight relationships; owned Custom Plays and their highlight relationships; personal block relationships in both directions (accounts you blocked and accounts that blocked you); group memberships; group-redemption blocks where you are the affected user; manager assignments; and account-linked Premium synchronization records.
Reactions: reactions on comments that are deleted are also deleted. Your reactions on comments that remain may be preserved, but their association with your account is removed.
Shared business records: shared deals, deal groups, and payment-event records may remain. Historical account references showing who performed an administrative action are removed where the relevant relationship is cleared. This does not automatically erase all free-text information in a shared record.
Public links: deleted Practice Plans and Custom Plays are no longer available through their application URLs. We do not retain owned Plans as ownerless public Collections after account deletion.
Deletion may involve several steps. If a storage or authentication operation fails, limited retry information may be retained while the remaining cleanup is completed. Contact us if deletion reports an error or you have concerns about remaining data.
Public content may already have been copied, cached, indexed, or archived by third parties. Removing it from our active Services does not necessarily remove those external copies.
Account deletion does not automatically cancel a subscription or payment arrangement with RevenueCat, Stripe, Apple, Google Play, or another provider. Cancel applicable subscriptions separately. It also does not automatically unsubscribe you from Kit or initiate every external-provider erasure process. Information may remain in provider systems or legally required business records. Contact us for a broader deletion request concerning information for which we are responsible.
7. Your Rights
Depending on applicable law, including the GDPR, you may have rights to obtain information about our processing; access and correct your personal information; request erasure or restriction; object to processing, including processing based on legitimate interests; receive eligible information in a portable format; withdraw consent; and complain to a data-protection authority.
Registered users can review a substantial portion of the account information stored in the Fullcourt Training application database on the website in Profile → Advanced → Your Data. This includes relevant account information, bookmarks, comments and reactions, Practice Plans and items, testimonial information, Custom Play titles, descriptions and timestamps, and applicable organizational-access records.
Your Data is a browser view, not a complete downloadable export. It does not include the full underlying Custom Play document, credentials or session tokens, unrelated users’ private information, or all records held separately by providers such as RevenueCat, Kit, Stripe, Apple, Google, Zoho, or infrastructure providers. These display limits do not limit your statutory rights.
Your outgoing personal blocks can be reviewed and removed separately in Blocked users in the comments interface. That view does not disclose who has blocked you. For broader access, portability, correction, objection, or deletion requests, contact contact@fullcourt-training.com. You may also contact us about personal information in public content submitted by someone else.
We may need to verify your identity. Where the GDPR applies, we respond without undue delay and normally within one month. If a lawful extension is necessary, we will explain the reason and applicable timing.
You can unsubscribe from newsletters using the email unsubscribe mechanism and withdraw testimonial consent through Profile or by contacting us. Withdrawal does not affect processing that was lawful before withdrawal.
You may complain to Datatilsynet, the Danish data-protection authority, or another competent supervisory authority, including where you habitually reside, work, or believe an infringement occurred.
8. Sensitive Information
Fullcourt Training is not designed to collect sensitive personal information through Practice Plans, Custom Plays, comments, manager reasons, or other free-text features.
Do not put medical or health information, passwords, financial details, government identifiers, private contact details, confidential organizational information, or unnecessary personal information about children or other people into these features. This applies to Plan notes and descriptions as well as Custom Play labels and annotations. Use generic player labels rather than identifying children.
Managers must not use membership-end or group-redemption-block reasons to record unnecessary medical, disciplinary, criminal, discriminatory, or other sensitive information. If we become aware of inappropriate personal information in public content, we may redact it or remove the affected content.
9. Children
Fullcourt Training is not directed to children under 13. Users must be at least 13 to create an account, subject to any higher requirements under applicable law. Users under 18 should use the Services with a parent’s or legal guardian’s permission and guidance.
The minimum account age is not a statement that every minor can independently consent to every use of personal information. Where the law requires parental consent or authorization for consent-based processing, that requirement also applies. In Denmark, the threshold for a child’s own consent to consent-based processing in an online service offered directly to children is 15; below that age, parental consent or authorization is required for that processing.
Organizations providing access to minors are responsible for ensuring that they have the necessary authority and permissions for their activities. A group code or a personal block does not make a Practice Plan or Custom Play private.
If you believe a child under 13 has created an account, or a child has provided information without legally required authorization, contact contact@fullcourt-training.com.
10. Security
We use reasonable technical and organizational safeguards intended to protect personal information, including authentication, access controls, database security policies, restricted server-side access, rate limiting, bot protection, and controlled delivery of protected media and testimonial images.
These safeguards do not make intentionally public content private. No online service can guarantee absolute security.
11. Changes to This Policy
We may update this Privacy Policy as the Services or applicable requirements change. The date at the top indicates when it was last updated. Where appropriate or legally required, we will provide additional notice of material changes.
12. Contact
For privacy questions or requests, contact:
Frej Dahl Linneke
Fullcourt Training
Denmark
contact@fullcourt-training.com
You do not need an account or Premium subscription to send a privacy or support request. If an in-app link cannot open, enter the address directly in your email application or open this policy in a browser at fullcourt-training.com/privacy-policy.
Related documents: Terms & Conditions and Business Terms & Conditions.