Privacy Policy
Last updated: 17 October 2026
This policy covers the Carpincho website (carpincho.app) and the Carpincho app for iOS.
1. Controller
Steffen Giebler — 52N34S Group
Schwedter Str. 25, 10119 Berlin, Germany
Email: privacy@52n34s.com
We are not required to appoint a Data Protection Officer under Art. 37 GDPR.
2. In short
Carpincho works without an account. Vocabulary, audio and the review algorithm are bundled with the app and run on your device. Without an account, your learning data never leaves your phone.
There is no Google Analytics, no PostHog, no advertising inside the app, and no sale of data. To measure whether our ads on Instagram and Facebook lead to installs and subscriptions, the app uses Meta's SDK (see 3.10). If your App Store is set to a country in the EU, the EEA or the United Kingdom, this only happens with your permission; everywhere, the app uses the advertising identifier (IDFA) only with your permission. The website uses no analytics software and sets no tracking cookies — so there is no consent banner either. The free tools count anonymously how often they are used (see 4.4). The app can collect optional, pseudonymous usage statistics; you can turn that off in Settings.
Data leaves your device in these situations: a voice recording when you use a pronunciation exercise; when you create or use an account (email or Sign in with Apple); your learning progress if you sync with an account; a support message or card report if you send one; a crash report if the app crashes; and a purchase — then to Apple and to RevenueCat for managing purchases and entitlements. For ad measurement, some events also go to Meta (see 3.10).
3. The app
3.1 Data that stays on your device
Card states and review schedules, module progress, your variant setting (Rioplatense, neutral Latin American, Spain), interface language and other settings are stored in the app's local storage. Without an account they are not transmitted anywhere, and they are removed when you delete the app.
3.2 Optional account
An account is optional, including for purchases. Its purpose is to back up and sync your progress between devices when you have access. You can sign in with email and password or with Sign in with Apple. We store, using Supabase (EU region):
- your email address and an account ID (Supabase Auth)
- your learning progress: card states and settings, with a timestamp
Supabase also sends the transactional emails for sign-up confirmation and password reset on our behalf.
Legal basis: Art. 6(1)(b) GDPR — performance of a contract you requested.
With Sign in with Apple we receive an Apple user identifier and — if shared — your email or a relay address. We do not request a name and we do not store one. Apple acts as an independent provider.
Deletion: You can delete your account in the app under Profile → Delete account. This deletes your login and all associated progress records immediately and irreversibly. For an Apple account we also revoke the connection with Apple. You can also write to privacy@52n34s.com.
3.3 Installation ID
On first launch the app generates a random installation ID and stores it locally. It is sent with pronunciation assessments (to enforce the daily quota), support messages and card reports (so we can recognise repeat submissions from the same installation).
This identifier is generated by us. It contains no device, hardware or advertising identifier and is not used for advertising. When usage statistics are enabled, events are tied to this ID rather than to a person. It is gone when you delete the app.
Legal basis: Art. 6(1)(f) GDPR — preventing abuse, controlling the cost of a paid third-party service, and handling support requests.
3.4 Pronunciation assessment and microphone access
The app uses the microphone only while you are actively recording in a speaking exercise. It does not listen at any other time.
What happens to a recording:
- It is recorded locally (WAV, 16 kHz mono).
- It is sent over an encrypted connection to our server function, which forwards it to Microsoft Azure Speech Services in the Germany West Central region, together with the sentence you were asked to say.
- Azure returns an assessment. The app shows a band — understood / borderline / would not come across — and marks your weakest words. Numeric scores are never shown.
- The recording is discarded. It exists only in the working memory of our server function for the few seconds the assessment takes. It is not written to disk, not stored in our database, and not retained by us in any form. Microsoft acts as our processor; under the Azure Speech terms, audio submitted to the service is not retained after processing and is not used to train Microsoft models.
The assessment result is not stored on our servers either. It is returned to your device and displayed there.
The only thing we record is a usage entry so quotas can be enforced: account ID or installation ID, the length of the recording in seconds, and the language variant. No audio, no text, no result.
Microphone access is requested the first time you open a speaking exercise. You can decline or revoke it in iOS settings at any time; every other part of the app continues to work.
Legal basis: Art. 6(1)(b) GDPR for the assessment itself, Art. 6(1)(f) for the quota entry.
3.5 Support messages and card reports
If you send a support message, we store the message text, any contact address you provide, your installation ID, technical metadata (app and OS version) and, if you are signed in, your account ID.
If you report an incorrect entry using the report button on a card, we store the entry concerned, your note, your installation ID and, if you are signed in, your account ID.
If you are offline, the message stays queued on your device until a connection is available.
Legal basis: Art. 6(1)(b) and (f) GDPR — answering your enquiry and correcting content errors.
3.6 Error tracking
We use Sentry (EU region, ingest.de.sentry.io) to find crashes and errors in the app. Sentry is not used on the website.
The configuration is deliberately restrictive: sendDefaultPii is off, any user object is removed from every event before it is sent, breadcrumbs from text input fields and from the developer console are discarded, and screenshots and view hierarchies are not attached. A report contains the error and stack trace, app version, device model, iOS version, and technical tags identifying the screen, module and language variant in use. When a card report fails to send, the report additionally carries the entry ID and the error code — not your note.
Legal basis: Art. 6(1)(f) GDPR — legitimate interest in a stable app.
3.7 App updates
The app is configured for over-the-air updates through Expo Application Services (u.expo.dev). On launch the app may check whether a newer version of the app code is available. This request carries technical information such as app and runtime version and platform. It carries no account data and no learning data.
Legal basis: Art. 6(1)(f) GDPR — delivering fixes and improvements.
3.8 Purchases
Purchases are processed by Apple through the App Store. We do not receive payment details.
We use RevenueCat, Inc. as a processor to manage purchases and entitlements. RevenueCat assigns your installation an anonymous app user ID ($RCAnonymousID). If you create an account or sign in, this identifier is linked once to your Supabase user ID (Purchases.logIn).
What RevenueCat gives us back is purchase and entitlement status only — never your payment details. Transfers to the US rely on Standard Contractual Clauses; processing includes AWS and Snowflake. Purchase-related data: 24 months.
If you choose "Remind me" during a free trial, the app schedules a local notification on your device two days before the trial ends. It calculates the time from the expiry date reported by RevenueCat. Nothing additional is transmitted. The system permission prompt appears only after you tap "Remind me".
Legal basis: Art. 6(1)(b) GDPR.
3.9 Usage statistics
The app collects pseudonymous usage statistics: which exercise was opened, how long a session lasted, how many cards were reviewed, which intelligibility band a pronunciation assessment fell into, and paywall and purchase events. Paywall and purchase events may include the App Store country (storefront). This includes your device's time zone (for example “Europe/Berlin”) so we can count days in your local time; it does not tell us your location. Content is not collected: no voice recordings, no typed answers, no dictation text. The data is tied to a random installation ID, not to a person, and is stored in the EU. You can turn collection off in Settings.
Legal basis: Art. 6(1)(f) GDPR — understanding how the product is used so we can improve it.
3.10 Ad measurement with Meta
We advertise Carpincho on Instagram and Facebook, among other places. To measure whether these ads lead to installs, free trials and subscriptions, the app includes the software development kit (SDK) of Meta Platforms Ireland Ltd. (Merrion Road, Dublin 4, D04 X2K5, Ireland). There is no advertising inside the app.
What goes to Meta: that the app was opened and that you finished the introduction (once per installation), plus device model, iOS and app version, language setting, time zone, IP address, the identifier for vendors (IDFV) and a random identifier generated by the Meta SDK. When you start a free trial or subscribe, RevenueCat reports that event with product, price and currency to Meta through the Conversions API, linked to these identifiers. The advertising identifier (IDFA) is only added if you chose “Allow” in the iOS prompt. Learning content, voice recordings, email address and account ID do not go to Meta.
When: This depends on your App Store country. The iOS prompt appears after your first exercise; before it, the app explains what it is for.
- EU, EEA, United Kingdom or country unknown: Meta only receives data if you choose “Allow” in the iOS prompt. Without permission, nothing goes to Meta.
- All other countries: the app also measures without permission, but without the advertising identifier; Meta only evaluates the events in aggregated form (Aggregated Event Measurement). You can turn this off under Settings → Ad measurement. Then nothing goes to Meta any more, and the Meta identifier is removed from RevenueCat.
Withdrawal: You can withdraw your permission in the iOS Settings under Privacy & Security → Tracking. After that, the app no longer sends the advertising identifier; in the EU, the EEA and the United Kingdom it then sends nothing to Meta at all. This does not affect the lawfulness of processing before the withdrawal.
Responsibility:We and Meta Platforms Ireland are joint controllers for the collection in the app and the transmission to Meta (Art. 26 GDPR), based on Meta's Controller Addendum (facebook.com/legal/controller_addendum). You can exercise your rights with us or with Meta. Meta alone is responsible for any further processing; details are in Meta's Privacy Policy (facebook.com/privacy/policy). We only receive aggregated reports from Meta, no data about individual people.
Legal basis: In the EU, the EEA and the United Kingdom, your consent (Art. 6(1)(a) GDPR, § 25(1) TDDDG). In all other countries, Art. 6(1)(f) GDPR — measuring the effectiveness of our advertising; you can object with the switch in Settings.
3.11 What the app does not do
- No Google Analytics, PostHog or other third-party product analytics
- No advertising inside the app; no ad networks apart from ad measurement with Meta (3.10)
- The advertising identifier (IDFA) and tracking across other apps or websites only with your permission in the iOS prompt
- No remote push notifications and no push token — optional reminders such as the word and sentence of the day use local notifications on the device
- No profiling, no automated decision-making under Art. 22 GDPR
- No sale of personal data; sharing only with the recipients listed in section 6
4. The website (carpincho.app)
4.1 Waitlist
When you join the waitlist we store your email address, your language preference and, if you provide one, your reason for learning Spanish. The data is stored with Supabase in the EU region. We use it only to tell you when Carpincho is available and to send occasional previews of the word list. Confirmation follows a double opt-in: we send one email via Resend to verify the address.
Legal basis: Art. 6(1)(a) GDPR — consent. You can withdraw consent at any time with effect for the future, via the unsubscribe link in any email or at privacy@52n34s.com.
4.2 Hosting
The site is hosted by Vercel. Standard server logs (IP address, timestamp, requested URL, browser type) are processed as part of hosting operations, for security, troubleshooting and abuse prevention.
Legal basis: Art. 6(1)(f) GDPR.
4.3 Fonts
Web fonts are downloaded when the site is built and served from our own domain. Your browser makes no request to Google or any other font provider, and no IP address is transmitted to a font provider.
4.4 Usage count of the tools
On the tool pages (for example the listening test or the false friends) we count how often a tool is opened, completed, or its App Store link is tapped. For this, your browser sends only: the tool, the page language, the event and a rough source (Google, social networks, AI assistants, direct or other). Your browser determines the source itself; the referring address is not sent. Our hosting provider Vercel derives the country from your IP address (two-letter country code); we do not store the IP address. We store only daily totals per tool, language, country, source and event, at Supabase in the EU region. There is no cookie, no identifier and no link to individual visits. Nothing you type into a tool is sent. Visits from recognisable bots are not counted.
Legal basis: Art. 6(1)(f) GDPR. Our legitimate interest is to understand which tools are used and in which languages and countries there is demand for the app.
4.5 Analytics and cookies
The website uses no analytics software and no error logging. It sets no cookies for advertising, analytics or cross-site tracking. There is a single cookie: if you choose a language in the language menu, your browser stores it as NEXT_LOCALE for one year, so that carpincho.app opens in that language on your next visit. It contains only the language code and is used for nothing else.
4.6 Admin area
The internal admin dashboard uses Supabase Auth and is accessible only to the site operator. It processes no visitor data beyond what is described above.
5. Legal bases at a glance
| Processing | Legal basis |
|---|---|
| Account, sync, learning progress | Art. 6(1)(b) — contract |
| Pronunciation assessment | Art. 6(1)(b) — contract |
| Purchases and entitlements | Art. 6(1)(b) — contract |
| Quota entry, installation ID | Art. 6(1)(f) — abuse prevention, cost control |
| Support messages and card reports | Art. 6(1)(b), (f) |
| Error tracking in the app | Art. 6(1)(f) — stability |
| App updates | Art. 6(1)(f) — delivering fixes |
| Waitlist and confirmation email | Art. 6(1)(a) — consent |
| Server logs | Art. 6(1)(f) — security and operation |
| Usage count of the tools | Art. 6(1)(f) — understanding demand for the tools and the app |
| Ad measurement with Meta | EU, EEA, UK: Art. 6(1)(a) — consent; other countries: Art. 6(1)(f) — effectiveness of our advertising |
6. Processors and recipients
| Service | Purpose | Processing location |
|---|---|---|
| Supabase (Supabase Inc., US) | Database, authentication, server functions, transactional email | EU region; DPA in place |
| Microsoft Azure Speech Services (Microsoft Ireland Operations Ltd. / Microsoft Corp., US) | Pronunciation assessment | Germany West Central; Microsoft Products and Services DPA |
| Sentry (Functional Software Inc., US) | Error tracking, app only | EU region (ingest.de.sentry.io) |
| Expo (Expo Inc. / 650 Industries, US) | Over-the-air app updates | US |
| Resend (Resend Inc., US) | Waitlist confirmation email | US |
| Vercel (Vercel Inc., US) | Website hosting | US / EU edge |
| RevenueCat (RevenueCat, Inc., US) | Managing purchases and entitlements; reporting trial and subscription events to Meta (3.10) | US |
| Meta (Meta Platforms Ireland Ltd.; Meta Platforms, Inc., US) | Ad measurement; joint controller for collection and transmission (3.10) | Ireland / US |
| Apple (Apple Distribution International Ltd. / Apple Inc., US) | App distribution and purchase processing, Sign in with Apple | Apple's own privacy policy applies |
7. International data transfers
Some providers are based outside the EEA or have a US parent company. Where personal data is transferred to the United States, we rely on the EU-U.S. Data Privacy Frameworkwhere the recipient is certified under it, and otherwise on the European Commission's Standard Contractual Clauses. You can request a copy of the relevant safeguards at privacy@52n34s.com. We apply the same standard to users everywhere, not only in the EU.
For RevenueCat, transfers to the United States rely on the European Commission's Standard Contractual Clauses, as set out in RevenueCat's data processing agreement. Processing takes place in the United States, including on AWS and Snowflake.
For Meta: Meta Platforms Ireland may transfer data to Meta Platforms, Inc. in the United States. Meta Platforms, Inc. is certified under the EU-U.S. Data Privacy Framework.
8. Retention
| Data | Retention |
|---|---|
| Local learning data on the device | Until you delete the app |
| Account and progress | Until you delete your account |
| Voice recordings | Not retained — discarded after assessment |
| Assessment results | Not stored on our servers |
| Quota entries | 90 days |
| Purchase and entitlement data | 24 months |
| Support messages and card reports | 12 months after the matter is closed |
| Waitlist entry | Until launch communication is complete or you unsubscribe |
| App error reports (Sentry) | 90 days |
| Server logs (Vercel) | Approximately 30 days |
| Ad measurement (Meta) | Meta identifier at RevenueCat with the purchase data: 24 months; at Meta: according to Meta's Privacy Policy |
9. Your rights
Under the GDPR you have the right to:
- access your data (Art. 15)
- have inaccurate data corrected (Art. 16)
- have your data erased (Art. 17)
- restrict processing (Art. 18)
- receive your data in a portable format (Art. 20)
- object to processing based on legitimate interest (Art. 21)
- withdraw consent at any time with effect for the future (Art. 7(3)); this does not affect the lawfulness of processing before withdrawal
- lodge a complaint with a supervisory authority (Art. 77), in particular in the Member State of your habitual residence, your place of work, or the place of the alleged infringement
To exercise any of these, write to privacy@52n34s.com. Account deletion is also available directly in the app.
Competent supervisory authority for us:
Berliner Beauftragte für Datenschutz und Informationsfreiheit (BlnBDI)
Alt-Moabit 59–61, 10555 Berlin
10. Children
Carpincho is not directed at children under 16, and we do not knowingly collect data from children under 16. If you believe a child has provided us with data, write to privacy@52n34s.com and we will delete it promptly.
11. Changes to this policy
We update this policy when the app or the services behind it change. The current version is always available at carpincho.app/privacy. If a change materially affects how we handle your data, we will point it out in the app or by email before it takes effect.