Felt ClubDeutsch

Privacy policy

Last updated: 27 October 2026

1. Controller

CodeCraft, Matthias Steins, Stationsweg 69, 41068 Mönchengladbach, Germany
Email: support@codecraftcom.de

2. In short

3. Offline mode

Matches against bots, your profile (name, avatar), settings and a saved game exist only in your device’s storage. They are not transmitted. Deleting the app or its data removes them.

The avatar is not a picture or photo but a number that selects an emblem and a colour. There is no image upload.

The solo features also stay entirely on your device: skill rating (your score against the computer), “Same cards again” (the starting value of the deal is kept with the saved game in protected storage and deleted with it), the weekly house rule, the daily game (the deal derives from the date alone, nothing is synchronised), achievements, titles and history. There is no server, no identifier and no analytics for them. An export happens only if you share it yourself.

4. Local statistics (all modes)

If you like, Felt Club keeps a private record: who played in a room with you and which place each round ended in (for Hold’em also hands won and biggest pot).

5. “Local Wi-Fi” mode (also hotspot)

Here the host’s device acts as the server. The same applies when the game runs in a device’s personal hotspot: it stays local and does not go to the internet. The following is processed:

The connection between the devices is authenticated and encrypted (AES-256-GCM) with a join secret from the invitation. The join secret is not announced on the network. No server of ours and no Google service is involved. Your operating system asks for local network permission before the first access.

6. “Online” mode (Firebase)

Online rooms run on Google Firebase (Cloud Functions, Firestore, Authentication, App Check, Hosting). The data is stored in the europe-west3 (Frankfurt) region. The provider is Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Ireland, with its parent company Google LLC, USA. Google acts as our processor; Google’s data processing terms apply.

6.1 What is stored

6.2 Anonymous sign-in

On the first online start the app signs in anonymously with Firebase Authentication. Google processes device data and the IP address as a technical necessity. The identifier stays in the app until you delete it (uninstall).

6.3 App Check (device attestation)

So that only genuine Felt Club apps can use the backend, Firebase App Check checks every request. On iOS this is done through Apple (App Attest or DeviceCheck), on Android through Google (Play Integrity). Technical information about the device and app is sent to and processed by Apple or Google. The result is a short-lived token; it contains no name.

6.4 Logs

Felt Club’s application logs (function name, duration, error code) contain no names, cards or identifiers. Google’s platform additionally writes request logs automatically, with the IP address, time, path and status code. By Google’s default, logs are kept for 30 days. We use them only for troubleshooting and abuse prevention.

6.5 Invitation links and this website

Invitations are links of the form https://table-kartentisch.web.app/j/<code>. If you open such a link in a browser, the address including the code is sent to Firebase Hosting, where the usual access data arises (IP address, time, requested address, browser identification). The pages load no fonts, scripts or images from third parties, set no cookies and use no analytics. The code grants access to a free seat in the room; share the link only with people who should play.

If the host also plays in the local Wi-Fi, the link additionally carries data about that room (address of the host’s device on the local network, port, join secret and rules check value as the suffix ?h=…&p=…&s=…&f=…). When opened in a browser it also reaches Firebase Hosting. The Wi-Fi secret only entitles to take a free seat in the host’s room before the game starts and to open an encrypted connection there; it gives no access to cards or the game state. Treat the link like a key to this one table.

6.6 Deletion periods

WhatPeriod
Room that was not started2 hours after the last activity
Doorway room of a Wi-Fi match (wifiPlaying)12 hours at the most
Person waiting to join late (name, UID, claim)until the seat is taken over or they leave, at the latest with the room
Trial-room counter per anonymous identifier7 days
Finished match7 days after the last activity
Running room30 days after the last activity at the latest
Host dissolves the roomimmediately
Seat keyexpires after 30 days, revoked on leaving
Purchase-status cache (accounts)as long as the account or purchase exists; no automatic deletion is set up. We delete it on request (see 11); it is recreated the next time you play online.
Ledger (ledgers)as long as the purchase exists, because it records the use of the hours; on request it can be deleted only if the entitlement to the hours lapses with it
Logs at Google30 days by default

Deletion covers the room including its private state and all participants’ views.

6.7 Transfers to third countries

The data is stored in Frankfurt. Because Google LLC (USA) is the parent company, access from the USA, for example for support or security, cannot be ruled out. Google LLC is certified under the EU-US Data Privacy Framework; standard contractual clauses in Google’s contract terms apply in addition.

7. Sharing an invitation

“Share invitation” opens your operating system’s share sheet with the link. You decide which app to use and what it does with the link; Felt Club does not learn about it.

8. Purchases and purchase verification (RevenueCat)

There are two ways to pay: the one-time purchase “Felt Club complete” and the subscription “Felt Club Online” (monthly or yearly). Both are handled through the Apple App Store or Google Play. Only Apple or Google receive and process payment data (card, account, billing address); we do not see it. Apple’s or Google’s privacy terms apply.

To verify purchases and subscriptions we use RevenueCat, Inc. (USA) as a processor. For this, the app connects to RevenueCat at start (RevenueCat first assigns its own anonymous identifier) and, once available, registers the random identifier from the anonymous sign-in (Firebase UID) with RevenueCat. RevenueCat processes this identifier, the store’s purchase receipts and transaction data (product, time, subscription expiry, transaction identifier) and the store country or currency where the store supplies it; the IP address also arises for technical reasons. We do not give RevenueCat your player name or an email address, and RevenueCat receives no game data from us.

Our server asks RevenueCat which purchases belong to your identifier in order to calculate your online hours (see 6.1, “Purchase status and online allowance”). The app also remembers on your device, in protected storage (Keychain or Keystore), whether a purchase exists. Guests who join an online room never pay.

Because RevenueCat is based in the USA, processing there cannot be ruled out. We base the transfer on the EU Commission’s standard contractual clauses in the data processing agreement with RevenueCat.

9. What does not exist

No ads, no advertising identifier, no tracking, no analytics or crash-reporting services, no disclosure to advertisers, no sale of data, no real money and no purchases of play chips. RevenueCat serves purchase verification only, not analytics or advertising.

10. Legal bases

11. Your rights

You have the right of access (Art. 15), rectification (Art. 16), erasure (Art. 17), restriction of processing (Art. 18), data portability (Art. 20) and to object to processing based on legitimate interests (Art. 21 GDPR). You can withdraw consent at any time with effect for the future. Write to support@codecraftcom.de.

Because online data is linked only through a random identifier, we can provide access or erasure only if you tell us the room code, or your player name and the time period. Rooms delete themselves after the periods above; the host can dissolve them immediately.

12. Right to complain

You can lodge a complaint with a data protection authority. The authority responsible for us is the State Commissioner for Data Protection and Freedom of Information of North Rhine-Westphalia (LDI NRW), Postfach 20 04 44, 40102 Düsseldorf, Germany, www.ldi.nrw.de. You can also contact the authority where you live.

13. Changes

We adapt this policy when the processing changes. The date above shows its status.