Privacy policy

> Status: DRAFT. This is a technically grounded first version, written based

> on what the application actually does today (see "Origin of this document" at

> the bottom). This is not legal advice, and this document must not go live

> before it has been reviewed by a lawyer/privacy specialist. All text between

> The company details below are taken from Astrae's existing legal documents.

Last updated: 5 September 2026

1. Who is responsible for your data?

Imperc, based at Poortland 66, 1046 BD Amsterdam, the Netherlands, and

registered with the Dutch Chamber of Commerce (KVK) under number 83544976

(hereafter: "Astrae", "we" or "us"),

is the data controller under the GDPR for the data you enter via

astrae.world.

Questions about this policy or your data? Email privacy@astrae.world.

2. What data do we collect, and why?

Date, time and place of birth indirectly reveal sensitive information

(including age and place of origin) and are therefore treated by Astrae as

sensitive personal data, even though they don't fall under the GDPR's Article

9 special categories.

3. What we do and don't store

Astrae still works fully statelessly without an account — that remains the

core of the product and is never required. Since Fase 4 you can also

optionally create a free account; that changes what happens:

Without an account (the default, always available):

calculation happens the moment you submit the form; the result goes back to

your browser and the server retains nothing of it.

anonymous usage counts (which sections get opened), without a cookie,

without an id and without anything traceable to you.

works — and stays in the server's working memory for at most ten seconds,

purely to count requests. It is not linked to your data and never written to

disk.

working memory for a while under a hash (SHA-256) of your planetary

positions, so the same question on the same day is not computed twice. A

restart empties that cache.

What *does* stay on your own device (never sent to our server outside of the

one-time calculation): your last calculated chart, language choice and theme

preference are stored locally in your browser (localStorage). This is

entirely under your own control — you can clear it via your browser

settings, and it only concerns that one device/browser.

With an account (optional, via an email login link — no password):

birth data of charts you deliberately save ("Save this chart") — your own

and optionally other people's (e.g. for synastry comparisons).

database and login provider — see Chapter 5.

Row-Level Security in the database, not just an application-level rule.

delete your entire account including all saved charts — see Chapter 6, no

request to us required.

4. Legal basis for processing

voluntarily enter your data to receive a specific result (your birth

chart); without that data, Astrae cannot perform the requested calculation.

consent applies (Art. 6(1)(a)) — the calculation also works without

those fields.

(Art. 6(1)(a)): an account is entirely optional, and you decide per chart

whether to save it.

(Art. 6(1)(f)): keeping the service available in case of abuse or overload.

5. Sharing with third parties

Astrae uses six external services to make the calculation, the AI

reading and the account functionality possible.

We have no control over their processing — see their own privacy notices for

details.

Your full name or place of birth is never sent to JPL Horizons — only a

timestamp, which cannot on its own be traced back to you.

Supabase hosts our database and login system (data center region:

[CONFIRM DATA CENTER REGION]); they process this data on our behalf as a

processor, not for their own purposes. No data processing agreement text is

included here yet — that belongs with the legal review of this document.

Astrae does not itself host advertisements and uses no third-party trackers

(no Google Analytics, Meta Pixel, or similar) at the time of writing.

6. Your rights under the GDPR

Once Astrae processes data about you, you have the right to:

No account? Then there is in practice nothing to exercise most of these

rights over — Astrae stores nothing of your data (see Chapter 3), and your

own browser is the only place anything is retained, over which you already

have full control.

Have an account? You can exercise these rights yourself, directly in the

app, without needing to send us a request:

you a file with everything we hold about you (profile, saved charts,

device tokens for notifications).

and all saved charts immediately and irreversibly.

correct data; a separate "edit" function doesn't exist yet.

for requests the self-service options above don't cover.

You also always have the right to lodge a complaint with the Dutch Data

Protection Authority, the

Autoriteit Persoonsgegevens

or, if you live outside the Netherlands, your own country's supervisory

authority.

7. Retention period

not retained on the server — processed and immediately released again

after the result is returned (see Chapter 3).

remain until you delete them yourself (per chart, or your entire

account at once) — there is no automatic deletion period.

your browser clears it itself.

8. Security

hosted behind an automatically managed TLS certificate (Fase 3 complete,

live since July 2026).

that could be compromised with birth data in it.

(RLS) — a technically enforced rule that each user can only read or modify

their own rows, not merely an application-level convention. Login is

passwordless via a one-time email link, so there are no passwords to hash,

store, or leak. Account deletion happens through a separate, authorized

server operation (not directly from the browser), so only the logged-in

user themselves, with a valid session token, can have their own account

deleted.

9. Changes to this policy

We will update this policy as Astrae's functionality changes (particularly

with the introduction of accounts, Fase 4). The date at the top of this

document indicates when it was last updated.

10. Contact

Questions, requests or complaints about your data: info@astrae.world.

---

Origin of this document (not for publication)

This draft was produced by tracing the actual data handling in the current

codebase, not by assumption:

calculation POST handler computes and returns the result directly, with

no database write anywhere. The one exception is /api/account/delete

(see backend/accounts.py), which stores nothing but instead performs

account deletion at Supabase on behalf of the logged-in user.

Nominatim, and the autocomplete search term goes to Photon; date/time of

birth are not sent along.

JPL Horizons.

astrae-lang, and the last-calculated-chart object; no analytics or

tracking code found anywhere in the frontend.

(2026-07-23/26) — confirms the account flow: email magic-link login,

optionally saved charts (birth_profiles), Row-Level Security limiting

storage to your own rows, and the self-service data-export and

account-deletion buttons. See docs/fase4-accounts-ontwerp.md for the

full design.

Still open:

data processing agreement.

well-grounded starting point, not a finished product.

This English version and privacybeleid.md (Dutch) are

maintained as equally authoritative — the same facts. Update both together

when the app's data handling changes.