Privacy Policy

Effective Date: April 7, 2026

Last Updated: October 20, 2026

Sortery ("the App") is a mobile photo sorting application developed and operated by BW.Digitals e.U. Protecting your personal data is of paramount importance to us. This privacy policy informs you in accordance with Art. 13 and Art. 14 of the General Data Protection Regulation (GDPR, Regulation (EU) 2016/679) about what data the App processes, for what purpose, on what legal basis, and what rights you have.

1. Data Controller

The controller within the meaning of the GDPR (Art. 4(7)) is:

BW.Digitals e.U.
Owner: Bernhard Waitz
Schrekergasse 6/1/8
1160 Vienna, Austria
Email: contact@sortery.app
Commercial Register: FN 653658m, Commercial Court of Vienna

A Data Protection Officer has not been appointed pursuant to Art. 37 GDPR, as the requirements (core activities involving large-scale processing of special categories of personal data or systematic monitoring) are not met.

2. Core Principle: Your Data Stays on Your Device

Sortery was built following the principle of Privacy by Design (Art. 25 GDPR). Your photos are never uploaded to any server. All sorting decisions (keep, trash, favorite), your game progress (XP, levels, streaks, achievements, daily challenges), and your settings are stored exclusively on your device. There are no user accounts, no registration, no login, and no email collection. We do not operate any cloud sync or backup service for your data.

3. What Data Is Processed?

3.1 Data Stored Locally on Your Device

The following data is stored exclusively on your device and is never transmitted to us or any third party:

  • Sorting decisions (keep, trash, favorite) — stored in a local SQLite database
  • Photo metadata cache (EXIF data such as date taken, location, camera model) — used for achievements and sorting features
  • Gamification data (XP, level, streaks, achievements, daily challenges)
  • User preferences (theme, onboarding status, analytics settings)

Legal basis: This local processing is necessary for the performance of the contract between you and us, i.e., providing the App's core functionality (Art. 6(1)(b) GDPR). Since this data never leaves your device, it is under your sole control. You can delete all locally stored data at any time by uninstalling the App.

3.2 Anonymous Usage Analytics (Aptabase)

We use a self-hosted Aptabase instance (an open-source, privacy-friendly app analytics solution) to understand how the App is used and to improve it. Aptabase is designed so that no user is identified:

  • No persistent user or device ID is stored — the App generates a random session ID per session, which exists only in memory and is discarded after a period of inactivity
  • No advertising IDs (IDFA/GAID) or other device identifiers are read
  • No device fingerprinting and no cross-session tracking is performed
  • The IP address is used on receipt solely to derive the country and is not stored
  • No personal data (names, email addresses, photos, file names) is collected

Transmitted events include app start, onboarding steps, swipe actions (keep/trash/favorite), level-ups, unlocked achievements and settings changes, each together with technical information (operating system and version, device language/region, App version). This data is transmitted via encrypted HTTPS to our self-hosted Aptabase instance and cannot be linked back to you as an individual.

The Aptabase server is operated by BW.Digitals e.U. at Hetzner Online GmbH within the European Union. No international data transfer occurs for analytics data.

Legal basis: Legitimate interest in improving the App (Art. 6(1)(f) GDPR). Because no personal data is stored and no identifiers are stored on or read from your device, no consent is required. No access to terminal device information within the meaning of § 25(1) TDDDG (Germany) or § 165(3) TKG 2021 (Austria) takes place. This assessment is consistent with the guidelines issued by the French data protection authority (CNIL) and the German Conference of Independent Data Protection Authorities (DSK) on audience measurement exemptions.

Opt-out: Even though no personal data is collected, you can disable analytics entirely in the App's Settings screen.

3.3 Advertising (Google AdMob)

The free version of Sortery displays advertisements provided by Google AdMob. When ads are enabled, Google may process certain data depending on your consent choices:

  • If you consent to personalized ads: Google may collect and use your advertising ID (IDFA on iOS, GAID on Android), approximate location, and app usage data to show interest-based ads. On iOS, you will first be shown Apple's App Tracking Transparency (ATT) prompt.
  • If you decline personalized ads: Google will show non-personalized (contextual) ads. Limited technical data (e.g., ad request metadata) may still be processed by Google to serve and measure ads.

Legal basis: Consent (Art. 6(1)(a) GDPR in conjunction with § 25(1) TDDDG or § 165(1) TKG 2021). Before any ad-related tracking begins, the Google User Messaging Platform (UMP) SDK will present a consent dialog compliant with the IAB Transparency and Consent Framework (TCF) v2.2. You can withdraw your consent at any time in the App's Settings screen.

Google acts as an independent controller for data it collects through AdMob. For details on Google's data practices, see Google's Privacy Policy and How Google uses information from sites or apps that use their services.

Ad revenue reporting: When an ad is shown, the App sends information about that impression (ad network, ad format, ad unit ID and the revenue reported by Google) to RevenueCat (see Section 3.4), so that we can evaluate ad and purchase revenue together. No advertising IDs are transmitted. This only happens if ads may be shown at all according to your choice in the consent dialog. Legal basis: Legitimate interest in the commercial evaluation of the App (Art. 6(1)(f) GDPR).

Ad-free option: You can remove all advertisements — and all ad-related data processing — permanently by purchasing the ad-free version through an in-app purchase.

3.4 In-App Purchases (Apple, Google, RevenueCat)

In-app purchases (e.g., the ad-free version) are handled through the Apple App Store or the Google Play Store. Payment processing is performed exclusively by Apple or Google respectively. No payment information (credit card numbers, billing addresses, etc.) ever reaches the systems of Sortery or our service providers. Please refer to Apple's Privacy Policy or Google's Privacy Policy for details on how they handle purchase data.

To validate and manage your purchases we use RevenueCat (RevenueCat, Inc., 1032 E Brandon Blvd #3003, Brandon, FL 33511, USA) as a processor (Art. 28 GDPR). RevenueCat determines whether you have bought the ad-free version and allows purchases to be restored on a new device. The following data is processed:

  • a randomly generated, pseudonymous user ID created on your device on first use (no name, no email address, no account)
  • purchase and transaction data (product, time of purchase, App Store receipt or Google Play purchase token, store country, price and currency)
  • technical device data (operating system and version, App version, language/region)
  • the IP address, which is technically transmitted when a connection is established
  • the ad impression information described above (without advertising ID)

RevenueCat is contacted on every app start to check your purchase status — even if you never buy anything. Advertising IDs (IDFA/GAID) are not sent to RevenueCat.

Legal basis: Performance of a contract (Art. 6(1)(b) GDPR) where processing is necessary to provide and restore your purchase; otherwise legitimate interest in reliable purchase management and its evaluation (Art. 6(1)(f) GDPR). For the transfer to the USA, see Section 5.

3.5 Error Tracking (GlitchTip)

We use a self-hosted GlitchTip instance (an open-source error tracking platform) to detect and fix crashes and errors in the App. When the App encounters an unexpected error, the following data may be transmitted:

  • Error details: error type, error message, and stack trace (code-level information about where the error occurred)
  • Device metadata: operating system (e.g., iOS 18), device model (e.g., iPhone 15), and App version
  • Random installation ID: an ID generated at random when the App first starts and stored only on your device. It is not derived from device characteristics, is not linked to advertising IDs or to your identity, and changes when the App is reinstalled. It is used only to group error reports from the same device (pseudonymous data)
  • No other personal data: No names, email addresses, phone numbers, photos, photo file paths, or advertising IDs (IDFA/GAID) are collected

In addition, for about 20% of App sessions, anonymous performance data is sent to the same GlitchTip instance: the App's startup time, the address, duration, and status of the App's network requests, and the frame rate and stutters of the interface. The address of a purchase-status request to RevenueCat contains the randomly generated, pseudonymous user ID described in Section 3.4. No advertising IDs (IDFA/GAID), names, or photo content are included. The statements on IP addresses, server location, and legal basis for error reports apply to this data equally.

IP addresses are not stored by our GlitchTip instance. IP scrubbing is enabled at the server level, meaning IP addresses are discarded before any data is persisted.

The GlitchTip server is hosted within the European Economic Area (EEA) on infrastructure operated by BW.Digitals e.U. No international data transfer occurs for error tracking data.

Legal basis: Legitimate interest in maintaining the stability and reliability of the App (Art. 6(1)(f) GDPR). Error tracking is essential for identifying and resolving bugs that affect all users. Since no personal data is collected, the impact on your privacy is minimal.

Note: Error tracking is only active in production builds of the App and is automatically disabled during development.

3.6 This Website and the Contact Form

The website sortery.app is hosted on a server of Hetzner Online GmbH within the European Union. When you visit it, the server processes technically necessary connection data (IP address, time, requested page, browser identifier) to deliver the page and protect it against abuse. The website sets no cookies and uses no analytics or tracking services. Legal basis: Art. 6(1)(f) GDPR (secure operation of the website).

If you write to us via the contact form, we process the data you enter (name, email address, message) solely to handle your request. The message is delivered by email to contact@sortery.app and deleted once your request has been fully handled, unless statutory retention obligations apply. These emails are sent through the email service Resend (Plus Five Five, Inc. (Resend), 2261 Market Street #5039, San Francisco, CA 94114, USA), which acts as our processor (Art. 28 GDPR). Resend processes the message content and the sender and recipient addresses, and stores delivery logs in the USA. For details see Resend's Privacy Policy. Legal basis: Art. 6(1)(b) GDPR where your request relates to a contract, otherwise Art. 6(1)(f) GDPR (answering enquiries).

To protect the form against spam and automated access we use hCaptcha (Intuition Machines, Inc., 1065 SW 8th St #704, Miami, FL 33130, USA). The hCaptcha script is loaded only on the contact page. hCaptcha processes your IP address, browser and device information and interaction data to check whether the input comes from a human. For more information see the hCaptcha Privacy Policy. Legal basis: Art. 6(1)(f) GDPR (protection of the form against abuse). For the transfer to the USA, see Section 5. If you prefer to avoid hCaptcha, email us directly at contact@sortery.app.

4. Legal Bases Overview

Processing Activity Legal Basis Explanation
Local data storage (sorting decisions, gamification, settings) Art. 6(1)(b) GDPR Contract performance — necessary to provide the App's functionality
Anonymous analytics (Aptabase, self-hosted) Art. 6(1)(f) GDPR Legitimate interest in improving the App; no identifiers on the device, so no consent required
Personalized advertising (Google AdMob) Art. 6(1)(a) GDPR, § 25(1) TDDDG Consent — obtained via Google UMP SDK (TCF v2.2), revocable at any time
Non-personalized advertising (Google AdMob) Art. 6(1)(f) GDPR Legitimate interest in funding the free version of the App
In-app purchases Art. 6(1)(b) GDPR Contract performance — purchase processing by Apple/Google as independent controllers
Purchase management and ad revenue reporting (RevenueCat) Art. 6(1)(b) and (f) GDPR Validating and restoring purchases; legitimate interest in commercial evaluation
Contact form incl. spam protection (hCaptcha) and email delivery (Resend) Art. 6(1)(b) or (f) GDPR Handling your request; legitimate interest in preventing abuse
Error tracking (GlitchTip, self-hosted) Art. 6(1)(f) GDPR Legitimate interest in maintaining App stability; only a random, pseudonymous installation ID

5. International Data Transfers

Our Aptabase and GlitchTip instances and this website are hosted within the European Union. No international data transfer occurs for analytics or error tracking data.

RevenueCat (purchase management), hCaptcha (contact form spam protection) and Resend (contact form email delivery) are based in the USA. Transfers there rely on the European Commission's adequacy decision for the EU–U.S. Data Privacy Framework (Art. 45 GDPR), to the extent the respective provider is certified under it, and additionally on the European Commission's Standard Contractual Clauses (Art. 46(2)(c) GDPR), which form part of the contracts concluded with these providers.

If you consent to personalized advertising, Google AdMob may transfer data to servers in the United States. Google relies on:

  • the EU–U.S. Data Privacy Framework (adequacy decision of the European Commission pursuant to Art. 45 GDPR) and
  • Standard Contractual Clauses (SCCs) pursuant to Art. 46(2)(c) GDPR as a supplementary safeguard

You can prevent this transfer by declining personalized ads in the consent dialog or by purchasing the ad-free version.

6. Data Retention

  • Local data: Stored on your device until you uninstall the App or clear its data. We have no access to this data and cannot delete it remotely.
  • Aptabase analytics data: Anonymous event data is retained on our Aptabase server for up to 26 months and then deleted. Since this is not personal data, it cannot be linked back to you.
  • RevenueCat data: Retained for as long as necessary to manage and restore your purchases, and deleted on request to contact@sortery.app. Please describe your purchase (platform, approximate date of purchase) so we can identify it.
  • Contact requests: Deleted once your request has been fully handled, unless statutory retention obligations apply.
  • AdMob data: Retained by Google according to their own retention policies. See Google's data retention information.
  • In-app purchase data: Retained by Apple or Google according to their respective privacy policies.
  • GlitchTip error tracking data: Error reports are retained on our self-hosted GlitchTip server for up to 90 days and then automatically deleted. No personal data is contained in error reports. The performance data described in Section 3.5 is subject to the same 90-day maximum.

7. Your Rights as a Data Subject

Under the GDPR, you have the following rights regarding your personal data:

  • Right of access (Art. 15 GDPR) — You can request information about what personal data we process about you.
  • Right to rectification (Art. 16 GDPR) — You can request correction of inaccurate personal data.
  • Right to erasure (Art. 17 GDPR) — You can request deletion of your personal data ("right to be forgotten").
  • Right to restriction of processing (Art. 18 GDPR) — You can request that we restrict the processing of your data.
  • Right to data portability (Art. 20 GDPR) — You can request a copy of your data in a machine-readable format.
  • Right to object (Art. 21 GDPR) — You can object to processing based on legitimate interest. In particular, you can object to anonymous analytics via Aptabase by disabling it in the App's Settings.
  • Right to withdraw consent (Art. 7(3) GDPR) — Where processing is based on consent (e.g., personalized ads), you can withdraw it at any time. Withdrawal does not affect the lawfulness of processing before withdrawal. You can withdraw ad consent in the App's Settings screen.

Practical note: Since Sortery stores almost all data exclusively on your device and our analytics are fully anonymized, there is very little personal data on our side. Uninstalling the App deletes all local data. If you wish to exercise any of your rights, please contact us at contact@sortery.app. We will respond within 30 days (Art. 12(3) GDPR).

8. Right to Lodge a Complaint

If you believe that the processing of your personal data violates the GDPR, you have the right to lodge a complaint with a supervisory authority (Art. 77 GDPR). The competent authority for BW.Digitals e.U. is:

Österreichische Datenschutzbehörde (Austrian Data Protection Authority)
Barichgasse 40–42
1030 Vienna, Austria
Phone: +43 1 52 152-0
Website: www.dsb.gv.at
Email: dsb@dsb.gv.at

You also have the right to contact any other data protection supervisory authority within the EU/EEA, in particular the authority of your habitual residence or place of work (Art. 77(1) GDPR).

9. Children's Privacy

Sortery is not directed at children under 16 years of age. We do not knowingly collect personal data from children. Since the App does not require account creation and our analytics are fully anonymized, we have no way to identify whether a user is a minor.

In Austria, pursuant to § 4(4) DSG, the minimum age for consent regarding information society services (Art. 8 GDPR) is 14 years. Consent to personalized advertising therefore requires a minimum age of 14; otherwise, parental consent is required.

If you are a parent or guardian and believe your child has provided personal data to us, please contact us at contact@sortery.app, and we will take the necessary steps.

10. Third-Party Services Overview

Service Provider Purpose Data Processed Legal Basis Server Location
Aptabase Analytics Self-hosted (BW.Digitals e.U.) Anonymous usage analytics Anonymous event data (no personal data) Art. 6(1)(f) GDPR EEA
Google AdMob Google Ireland Ltd., Gordon House, Barrow Street, Dublin 4, Ireland Advertising Advertising ID, ad interaction data (with consent) Art. 6(1)(a) GDPR EEA / USA (with safeguards)
Google UMP SDK Google Ireland Ltd. Consent management (TCF v2.2) Consent decision Art. 6(1)(c) GDPR (legal obligation) EEA / USA
Apple App Store Apple Distribution International Ltd., Hollyhill Industrial Estate, Cork, Ireland App distribution, in-app purchases Purchase and payment data (processed by Apple) Art. 6(1)(b) GDPR EEA / USA
Google Play Store Google Ireland Ltd. App distribution, in-app purchases Purchase and payment data (processed by Google) Art. 6(1)(b) GDPR EEA / USA
GlitchTip Self-hosted (BW.Digitals e.U.) Error tracking and crash reporting Error details, device model, OS version, App version; performance data for about 20% of sessions (see Section 3.5) Art. 6(1)(f) GDPR EEA
RevenueCat RevenueCat, Inc., 1032 E Brandon Blvd #3003, Brandon, FL 33511, USA Purchase validation, restoration, revenue reporting Pseudonymous user ID, purchase and transaction data, technical device data, IP address, ad impression information Art. 6(1)(b) and (f) GDPR USA (with safeguards)
Hetzner Hetzner Online GmbH, Industriestr. 25, 91710 Gunzenhausen, Germany Hosting of the website, analytics and error tracking servers Connection data, the analytics and error data described above Art. 6(1)(f) GDPR EU
Resend Plus Five Five, Inc., 2261 Market Street #5039, San Francisco, CA 94114, USA Contact form email delivery Name, email address, message content, delivery logs Art. 6(1)(b) or (f) GDPR USA (with safeguards)
hCaptcha (contact page only) Intuition Machines, Inc., 1065 SW 8th St #704, Miami, FL 33130, USA Contact form spam protection IP address, browser and device information, interaction data Art. 6(1)(f) GDPR USA (with safeguards)

11. Data Security

We implement appropriate technical and organizational measures to protect the data we process (Art. 32 GDPR). Specifically:

  • All communication between the App and our servers (analytics, error tracking) occurs over encrypted HTTPS connections (TLS).
  • Local data on your device is protected by your device's own security features (passcode, biometrics, device encryption).
  • The SQLite database operates in WAL mode (Write-Ahead Logging) to ensure data integrity.
  • Our servers (website, Aptabase, GlitchTip) are protected by access restrictions and regular security updates.

Despite these measures, no electronic transmission or storage can be 100% secure. Should we become aware of a data breach, we will notify the competent supervisory authority pursuant to Art. 33 GDPR within 72 hours and inform affected individuals pursuant to Art. 34 GDPR where there is a high risk to their rights and freedoms.

12. Changes to This Privacy Policy

We may update this privacy policy from time to time to reflect changes in our practices or legal requirements. The "Last Updated" date at the top of this page will be adjusted accordingly. For significant changes, we will notify you through the App. We encourage you to review this privacy policy periodically.

13. Contact Us

If you have any questions about this privacy policy or our data processing practices, please contact us:

BW.Digitals e.U.
Bernhard Waitz
Schrekergasse 6/1/8
1160 Vienna, Austria
Email: contact@sortery.app

We aim to respond to inquiries within 30 days. When exercising your data subject rights, this is mandatory pursuant to Art. 12(3) GDPR.