pteryx

Privacy Policy

Pteryx is operated by Audrey Fan, an individual operating Pteryx, in California, USA. Pteryx helps you learn bird identification by sound.

Website visits and signup

The pteryx.app website runs on Vercel. If you submit the website signup form, your browser sends your email address and a hidden anti-spam field to the website’s own signup endpoint. The endpoint normalizes the email and stores it with a UTC signup timestamp and the source pteryx.app in Google Sheets. It checks existing entries to avoid duplicates. This records your website signup; the current implementation does not send an automated confirmation or other automated signup email.

Vercel receives page/API requests, submitted form information and request metadata including IP addresses. The signup application uses SHA-256 hashes of IP addresses in in-memory rate-limit buckets with a 60-second counting window. Expired buckets are pruned on later requests. This is abuse prevention, not a promise that all IP-related information or provider logs are deleted after 60 seconds.

The current website uses no analytics or advertising SDK, tracking beacons, application-set cookies, localStorage or sessionStorage. The website does not detect or change its behavior in response to legacy browser Do Not Track signals. Its fonts, images and scripts are served from the same origin. Vercel and Google may still process operational, security and access records. The website API is configured for Vercel’s Washington, D.C., U.S. region; that setting is not an exclusive data-residency guarantee for Vercel or Google Sheets.

Website signup entries have no configured automated retention period, deletion job or unsubscribe workflow. To request removal of a website signup entry, contact support@pteryx.app. Website signup records are separate from an app account and from the app diagnostic-retention periods below. Provider logs, Google Sheets version history and backups have separate handling; no exact removal deadline is promised here.

App information and purposes

If you use account features, Pteryx processes email and authentication credentials through Supabase Auth, names and profile customization, onboarding state, selected US state and learning preferences. Learning records include answer selections and timing, species progress and spaced repetition, saved bird sets, curriculum versions and scores, session history, hearts, streaks, stars and freezes. These support learning, server validation, reliable retries and account restoration. The state is selected in the app; the current app does not use location services, contacts or the microphone and has no analytics SDK.

Installation, login, revocation and active-learning-generation records protect account access and prevent simultaneous writers. If you enable reminders and allow iOS notifications, delivery uses a device token and reminder settings. iOS notification permission remains device-specific.

Apple handles App Store purchases. Pteryx processes Apple-signed purchase/status information to verify subscription access and retains minimal ownership evidence to prevent cross-account reuse: Apple environment, app bundle identifier, original transaction identifier, account identifier and creation time. This registry is not a card-number or bank-account database.

Service providers and protection

Vercel hosts the website and signup endpoint, and Google Sheets stores website signup entries. App services are configured to use Supabase for authentication and bird content, Render for app API endpoints, and Postmark through Supabase Auth for account email. Google Workspace provides the support inbox. Apple handles App Store purchases, TestFlight and push delivery for features you use.

Private account records are designed to remain behind authenticated endpoints and restricted server transactions. Only server-confirmed learning can be restored on another installation. Downloaded public content, device haptics, notification permission and media readiness have separate local behavior. Operational diagnostics are designed to avoid credentials, answers and private URLs. Service providers may process access logs and operational metadata.

Retention and account deletion

Accepted learning history and unsettled work support restoration and reliable retries. Diagnostic records support troubleshooting and reliable processing. Minimal identifiers, hashes, outcomes, deletion evidence and purchase-ownership records may remain for replay protection, preventing account resurrection and cross-account subscription reuse. Provider logs, support correspondence and any enabled backup services have separate retention. Deleting an active record does not imply immediate removal of every backup or minimal protective record.

Where account features are available, deletion can be requested through Settings. A deletion request first blocks account access, revokes account logins and disables future eligible reminder claims. An already admitted or Apple-accepted notification cannot be recalled and may still arrive. Cleanup preserves minimal deletion evidence before removing private account data and authentication records. A pending request or blocked account does not confirm that every record has been erased. Minimal ownership and anti-resurrection evidence may remain, and enabled backup services may retain earlier data until their applicable retention ends. Restoration must reconcile independent deletion evidence before account access reopens.

Account deletion does not cancel an Apple subscription; use Apple’s subscription controls to manage renewal and cancellation.

Contact and policy updates

Contact support@pteryx.app to request review, correction or removal of website signup or app information Pteryx holds about you. Identify the relevant signup or account without sending passwords, authentication tokens or purchase receipts. A request is not itself confirmation that cleanup has finished.

This page shows the current policy version and effective date. Check this page for updates.

Beta-specific privacy information

The current private external TestFlight beta is limited to three invited adults aged 18 or older. Apple handles TestFlight feedback and crash information. If you submit feedback or participate in an explicitly guided diagnostic check, the resulting material may include app/build and device/runtime information, error details, screenshots and the bounded diagnostic evidence requested for that check. Do not send passwords, authentication tokens or purchase receipts in ordinary feedback. Beta participation does not waive privacy or deletion safeguards.