Privacy Policy
Effective: May 10, 2026
Data controller
TryVidya is operated by JBA WEB AGENCY SRL (CUI 45013493, Nr. Reg. Com. J2021003372228), a company registered in Romania. We act as data controller for the personal data described in this policy. This policy applies to the TryVidya web service at tryvidya.app and the TryVidya mobile application (com.tryvidya.vidya) available on Google Play. For data-protection enquiries, contact hello@tryvidya.app.
TL;DR
TryVidya is an online astrology service. We collect only what we need to cast your natal chart and run the service — your email, your birth details, and a few technical signals. We never sell your data. You can export or delete everything from your dashboard at any time.
Data we collect
- Account data: email address, hashed password, and OAuth account links (Google, Facebook) if you sign in with those providers.
- Profile data: display name, preferred locale (
enorro), optional avatar URL. - Chart data: birth date, birth time, birth place (city + country), latitude/longitude, and optional self-identified gender. We use this only to compute your natal chart.
- Session data: JWT session tokens, user-agent string, and IP address — stored in our Session table so we can keep you signed in and revoke compromised sessions.
- Payment data: your Stripe customer ID and purchase records. We never see your card number — card data is held by Stripe, not by us.
- Activity data: chart generations, login events, timestamps.
- Consent data: your cookie-consent preferences and any changes you make to them.
- Analytics data (only with your consent): pageview and referrer via Plausible; pageview, event, and a pseudonymous client ID via Google Analytics 4.
Mobile application data
When you use the TryVidya Android app (com.tryvidya.vidya), in addition to the data above, we process:
- FCM registration token: issued by Firebase Cloud Messaging when you grant notification permission. We store this token on our servers so we can deliver daily transit alerts and account-related notifications. The token is rotated by the OS and revoked when you uninstall the app or revoke notification permission.
- Notification content: push payloads we send to your device (e.g. daily transit summary, subscription status). Payloads are routed via Firebase Cloud Messaging and may be cached briefly on Google's infrastructure before delivery.
- In-app purchase records: when you subscribe through Google Play, we receive the purchase token, product ID, and entitlement status via RevenueCat. Card details remain with Google Play — we never see them.
- App diagnostics: app version, OS version, device locale, and crash signals attached to backend requests. We do not collect the Android Advertising ID and the app does not request it.
We do not access your contacts, photos, location, microphone, camera, files, or any sensor data. The only runtime permission the app requests is POST_NOTIFICATIONS (Android 13+) so we can show daily transit alerts.
Legal basis for processing (GDPR Art. 6)
- Contract (Art. 6(1)(b)): we need your account and chart data to provide the service you asked for.
- Consent (Art. 6(1)(a)): analytics, marketing emails beyond what you opted into, and any non-essential cookies run only with your explicit consent.
- Legitimate interest (Art. 6(1)(f)): security monitoring, fraud prevention, rate-limit enforcement, and protecting the service from abuse.
- Legal obligation (Art. 6(1)(c)): retention of invoices and payment records as required by Romanian accounting law.
Subprocessors
We rely on the following third parties to run TryVidya. Each one processes a narrow slice of your data under a data-processing agreement.
| # | Recipient | Purpose | Data shared | Region |
|---|---|---|---|---|
| 1 | Stripe | Payment processing, customer portal, webhooks | Email, name, billing address, card data (held at Stripe, not us) | US + EU |
| 2 | Transactional email provider | Verification, password reset, receipts | Email, display name | US |
| 3 | AI service provider | AI chart interpretations | Pseudonymized chart data (no name, no email) | US |
| 4 | Object storage provider | Storage for portraits, chart SVGs, generated PDFs | Generated media (pseudonymized URLs) | Global (EU configuration available) |
| 5 | AI image generation provider | AI portrait image generation | Prompt text (anonymized archetype) | US |
| 6 | Plausible Analytics | Privacy-first analytics (cookieless, daily-rotating hash) | Pageview, referrer | EU (Germany) |
| 7 | Google Analytics 4 | Event and funnel analytics | Pageview, event, pseudonymous client ID | US |
| 8 | Google OAuth | Federated login | Email, name, avatar URL (scopes: openid email profile) | US |
| 9 | Facebook OAuth | Federated login (feature-flagged) | Email, name (scopes: email public_profile) | US |
| 10 | GeoNames | Birthplace geocoding (primary) | City-name queries | EU |
| 11 | Nominatim (OpenStreetMap) | Geocoding fallback | City-name queries | EU |
| 12 | Railway | Backend hosting — PostgreSQL 16, Redis 7, Fastify API, astro-service | All backend data at rest | EU (Frankfurt) |
| 13 | Vercel | Frontend hosting and edge delivery | Request metadata, IP (transient, not logged by us) | Global edge |
| 14 | Firebase Cloud Messaging (Google) | Push notification delivery to Android devices | FCM registration token, notification payload | US |
| 15 | RevenueCat | In-app subscription state, entitlement check, receipt validation | App user ID (our pseudonymous user ID), purchase events, device platform | US |
| 16 | Google Play Billing | In-app purchase processing on Android | Purchase tokens, product IDs, billing account (held by Google, not us) | US + Global |
Astrology calculations are local — they run on our own infrastructure. No third-party call is made to compute your chart.
Your rights under GDPR
You have the right to:
- Access the personal data we hold about you.
- Rectification — correct anything that is wrong.
- Erasure — the "right to be forgotten"; we will delete your account and personal data on request.
- Restriction — pause processing of your data in certain situations.
- Portability — receive your data in a machine-readable format (JSON export).
- Objection — object to processing based on legitimate interest.
- Withdraw consent at any time without affecting the lawfulness of processing carried out before the withdrawal.
Android push notifications: you can disable transit-alert push notifications at any time via Profile → Transit Alerts toggle inside the app, or by revoking the POST_NOTIFICATIONS permission in your device's Android system settings (Settings → Apps → TryVidya → Notifications). Disabling notifications unregisters your FCM token from our backend; you will no longer receive push notifications until you re-enable them.
You can exercise most of these rights directly from your dashboard at /[locale]/dashboard/settings:
- Export: one-click download of a JSON file containing your account data, charts, and purchase history.
- Delete: type-to-confirm account deletion. We apply a 30-day soft-delete grace period (in case you change your mind), then permanently purge your personal data. Invoices and payment records are retained for legal accounting reasons.
For anything you can't do from the dashboard, email hello@tryvidya.app.
Data retention
- Account, profile, and chart data: retained while your account is active.
- After account deletion: 30-day soft-delete grace period, then personal data is permanently purged (personal fields are cryptographically neutralised; the database row may be retained with PII stripped for referential integrity of purchase records).
- Payment and invoice records: retained for 7 years in accordance with Romanian accounting law (OG 25/2014 and related fiscal code provisions).
- Session tokens: pruned 30 days after expiry.
- Server logs: rotated within 30 days.
Data security
- Encryption at rest: sensitive fields (email, birth date, birth time, birth place) are encrypted using AES-256-GCM with envelope-style per-field ciphertext (
v1:iv:ciphertext:tag). - Encryption in transit: TLS 1.2+ for every request.
- Passwords: stored only as a hash; the plaintext password is never stored.
- Sessions: JWT stored in an httpOnly + Secure + SameSite=Lax cookie; server-side revocation via our Session table.
- Rate limiting: login, registration, password reset, and OAuth callbacks are rate-limited to prevent abuse.
- Blind indexing: where we need to look up records by email without decrypting it, we use an HMAC-SHA256 hash with a separate key.
- FCM token security: FCM device tokens are stored server-side in our database associated with your user account. Tokens are rotated when the Firebase SDK reports them invalid (app reinstall, OS reset, or explicit unregister call). Raw tokens are never logged.
International transfers
Some of our subprocessors are based in the United States. We rely on the European Commission's Standard Contractual Clauses (SCCs) and, where available, the EU-US Data Privacy Framework to lawfully transfer data outside the European Economic Area.
Children
TryVidya is not directed at children. The age of digital consent in Romania is 16 (per GDPR Art. 8 and Romanian Law 190/2018). We do not knowingly collect data from anyone under 16. If you believe a child has created an account, contact hello@tryvidya.app and we will remove the account promptly.
Complaints
If you believe we have mishandled your data, please reach out to us first so we can try to resolve it. You also have the right to lodge a complaint with the Romanian data-protection authority, ANSPDCP — Autoritatea Națională de Supraveghere a Prelucrării Datelor cu Caracter Personal — or with the supervisory authority in your country of residence if you are outside Romania.
Contact
For any privacy-related inquiry, email hello@tryvidya.app. We aim to respond within 5 working days and, in any case, within the 30-day statutory window.
Changes to this policy
We will notify you by email and via a banner on the site whenever we make a material change. Minor editorial updates (typo fixes, clarifications) may be made without notice; the Effective date at the top of this page always reflects the latest revision.