About

Privacy

Last updated 10 October 2026.

Katarche is run by Western Slope Digital, LLC. This page says what the site collects, why, and who else can see it. It is written to be read rather than to be defensible, and it describes what the code actually does; the code is the authority, and where the two ever disagree the code is the bug.

The short version

Reading the archive requires nothing from you. No account, no sign-in, no tracking cookie, no profile. You can read every timeline, cast every chart, search the gazetteer and export what you make without ever telling the site who you are.

Three things change that, and only if you choose them: making an account, joining as a member, and asking to be told when a timeline is added. Each is described below.

If you are an astrologer: we do not store your clients’ personal information. The next section says where it is kept, why, and what that means for you.

Your clients’ information stays with you

Katarche does not store your clients' personal information. Your clients' names, birth data, charts, notes and readings are kept in this browser, on your own device. They are not sent to our server, and we have no copy.

Why it is kept this way

  • Your clients trust you, not us. A birth date, time and place identify a person, and your notes are confidential. They stay between you and your client, as they would in your own files.
  • Nothing to leak from our side. A server that holds no client details cannot lose them in a breach, hand them over or sell them. There is no client database here to break into.
  • Your file is yours. Export the whole file at any time, with or without a membership, and import it on any device. Export the charts for Solar Fire or another program. You are never locked in.
  • Fast, and it works offline. Every chart is cast in your browser, with no round trip to a server. Your practice and the Desk keep working without a connection.
  • No account needed. You can keep a full client file without signing up or telling us who you are.

What it means for you

  • Keep a copy. Clearing this browser's site data deletes the file in this browser, and we cannot restore it. Export a copy from time to time: Your practice reminds you when one is due.
  • One browser at a time. Other browsers and devices do not see the file. To move it, export it and import it on the other device.
  • What you send, you choose. A follow-up link or a client screen carries what you put in it to your client, after the "#" in the address, which browsers do not send to our server. A PDF is made in your browser.

What the site stores in your browser

The site keeps these things on your own device. None of them is sent anywhere for advertising, and none identifies you to a third party.

WhatWhereHow longSent to the site?
Your theme choicelocalStorageUntil you clear the site’s dataNo
In full

Your theme choice — light or dark, in localStorage, so the page does not flash the wrong colour on the next visit. Cleared by clearing site data.

Whether you have seen the opening animationlocalStorageUntil you clear the site’s dataNo
In full

Whether you have seen the opening animation — one flag in localStorage, so it plays once in this browser. Clearing the site’s data in the browser removes it.

That you are a member, for an hoursessionStorageUntil the tab is closedNo
In full

That you are a member, for an hour — when membership is on and a member uses Present, Card or Clip on a timeline, the time the hour ends, in sessionStorage, so the next click does not ask the site again. It goes when the tab is closed.

A reading plan, if you make onelocalStorageUntil you clear the site’s dataNo
In full

A reading plan, if you make one — on a client timeline, the order you chose for its entries, the entries you hid, your notes, your circles, the dates you added, the client’s name if you typed one, and the birth data if you corrected it, in localStorage. When you correct the birth data, the entries are calculated again in your browser, and the result is kept there too so a reload does not wait for it. A link you copy from the plan carries the plan after the # sign, which browsers do not send to the site; it includes the corrected birth data and the client’s name, so share it only with the client. The client link leaves the notes out. A reading session joins its two windows inside your browser, with nothing sent to the site, and remembers only that you have seen its help. Cleared by clearing site data.

Your client file, if you make oneIndexedDBlocalStorageUntil you clear the site’s data; what you delete, 30 daysOnly with sync on, encrypted
In full

Your client file, if you make one — on the Clients pages: your clients’ names and your notes about them, their charts (birth, founding or event data, the source of each time and its rating), and each reading’s plan, notes and trail, in IndexedDB. None of it is sent to the site. A reading from the client file builds its entries in your browser and keeps nothing of the client in the address bar. A client’s dates ahead (returns, transits and eclipses) are found in your browser and the last found for each natal chart is kept in localStorage with the birth data they were found from, no name, to show the next date on the list; it is never sent or synced. Export writes the whole file to a file you save, or the charts alone as AAF or CSV for another program; import reads such a file, or charts exported from another program, in your browser. If you choose a folder on your computer (in Chrome or Edge), your browser writes the same file there a few seconds after each change, with a dated copy for each of the last 14 days; the copy goes from your browser to your disk, and nothing of it is sent to the site. The browser’s permission to write to that one folder is kept in IndexedDB, and the folder’s name and the time of the last copy in localStorage. When you delete a client, a chart or a reading, what you deleted stays in this browser for 30 days under “Deleted” on Clients, so that you can bring it back, and then goes; it is not exported or synced. In the file only a mark with a random id and a time stays, so that a later sync between your own devices could carry the deletion; it holds nothing about the client. Cleared by clearing site data, which deletes the file: export it to keep a copy. A reading’s follow-up (the charts, dates and words you choose for the client) is kept on the reading in the same file. Its PDF is made in your browser. Its client link carries the follow-up after the # sign, which browsers do not send to the site: the client’s birth data and name, your name, the charts’ dates and places, and your words for the client. The page the client opens reads it in the client’s browser and keeps nothing. Share it only with the client. The Desk keeps the ids of the charts you opened last, in localStorage, to list them first; the list of its parts you turned off and the sections you folded; the tradition a chart opens in, whether its notes start open and whether the chart is drawn large; and the time of your last export, the number of changes since and the time of the first of them, to remind you to export. A chart you open on the Desk without a client (its date, time and place) is kept in localStorage until you open another or save it to a client, with the place you last opened one for; with sync on, it goes to your other devices with your settings, encrypted as below. “Now, where you are” asks your browser for your position; the nearest town is found in the site’s own place list, in your browser, and the position is kept only with that chart. A mark that this browser holds a client file, with no data in it, skips the archive’s intro.

Pages kept for offline usecache storageUntil you clear the site’s dataNo
In full

Pages kept for offline use — in the browser’s cache storage, by the site’s service worker: the pages you open and the site’s own code, engine, fonts and data files, so the client file and the Desk work without a connection. A client page is kept by its address, which holds the random ids of the client and chart and nothing else about them; the client’s data stays in IndexedDB as above. Cleared by clearing site data.

Your name and logo for the client screen, if you add themlocalStorageUntil you clear the site’s dataOnly with sync on, encrypted
In full

Your name and logo for the client screen, if you add them — in localStorage, with the choice to show them. The logo is scaled down in your browser and never uploaded. They go to the client screen of your own session, and into the follow-up you make for a client: the name into its link and PDF, the logo into the PDF only.

Your house style for the PDFs, if you set onelocalStorageUntil you clear the site’s dataOnly with sync on, encrypted
In full

Your house style for the PDFs, if you set one — the paper size, typeface, colours, your line for the foot of the page and the order of the follow-up’s parts, and the techniques you last chose for a dossier PDF, in localStorage. It is used only when your browser makes a PDF.

Your chart colours and wheel style, if you choose themlocalStorageUntil you clear the site’s dataOnly with sync on, encrypted
In full

Your chart colours and wheel style, if you choose them — a scheme’s name, or seven colours of your own, and the wheel style’s name, in localStorage, with whether the wheel carries the decan ring and its degree marks. They are used only to draw the charts in your browser.

Your own stars, if you add themlocalStorageUntil you clear the site’s dataOnly with sync on, encrypted
In full

Your own stars, if you add them — the catalogue numbers of the stars you add from the Bright Star Catalogue, any names you give them, and which stars the Desk uses, in localStorage. They are used only in your browser.

Your own model, if you add onelocalStoragesessionStorageThe key until you forget it; the conversation until the tab is closedNo
In full

Your own model, if you add one — the provider and model you chose, your key for each provider, your question templates and which of the engine’s tools it may use, in localStorage; and your conversation with it, in sessionStorage, for this tab only, gone when you close the tab or start a new conversation. None of it is sent to this site, kept in an account or synced; “Forget the key” removes a key from this browser.

Your account session, if you sign in to an accountcookieNinety days from your last visitYes: a random token
In full

Your account session, if you sign in to an account — one httpOnly cookie named katarche_session that holds a random token and nothing else. The site’s database keeps only a one-way hash of the token. It lasts ninety days from your last visit; signing out, or signing this device out from another, ends it.

Your membership pass, if you are a membercookieAn hourYes: a signed pass
In full

Your membership pass, if you are a member — one httpOnly cookie named katarche_entitled, signed by the site, that says this signed-in session belonged to a member at a given time. It holds a one-way hash of the session’s token and the time it ends, and nothing else; it lasts an hour and ends when you sign out. It lets the members’ pages open without a question to the database each time.

A referral link’s code, if you open onecookie30 daysYes: the link’s code
In full

A referral link’s code, if you open one — one httpOnly cookie named katarche_ref that holds the link’s code (the word after ?ref=) and nothing else, for 30 days. A later link replaces it. If you make an account in that time, the account records which code brought it, the referral discount is offered at the membership’s checkout, and the cookie is removed. It does not follow you to other sites, and no script or pixel of anyone else’s is loaded.

A tester’s pass, if you were invited to try the site before it openscookieUntil the sign-in endsYes: a signed token
In full

A tester’s pass, if you were invited to try the site before it opens — one cookie named CF_Authorization, set by Cloudflare Access when you sign in with the code it emails you. It holds a signed token with your email address and its expiry, and the site checks it to let you past the launch page. It ends when the sign-in does, and the site stops reading it when it opens.

These are set by the site with no consent banner because they are strictly necessary or purely a preference you asked for; none of them tracks you across sites or builds a profile. The account cookie is necessary to keep you signed in, the membership pass to open the members’ pages, the referral cookie to give the discount of the link you followed, and the tester’s pass to open the site before it opens to everyone.

What the site keeps on its own server

This is the part worth understanding, because it decides most of the rest. Unless you make an account, Katarche keeps nothing about you on its server: no users table, no order history, no analytics warehouse, no copy of your email address.

A timeline request (the form at the foot of the Timelines page) keeps the text you type (the event, why and a source), the number of votes it has, its state and, once the owner has read it, the owner’s link or reason. To stop one address sending dozens, the site counts the requests and votes from an address for an hour, kept as a keyed hash of the address and removed after the hour. Nothing else: no account, no email, no cookie. Your browser keeps the ids of the requests you voted for in localStorage, so the button knows; the site does not see that list.

If you make an account, its database (Postgres at Neon, in the United States, AWS US East) keeps:

Unless you turn on sync, it keeps nothing about your clients: the client file stays in your browser. You can delete the account, with everything on this list, from the account page at any time; it takes effect at once.

Sync between devices, if you turn it on

Sync is end-to-end encrypted. Your browser makes a random key for your account and encrypts each client, chart and reading with it before anything is sent. The key itself is sent only locked, in up to three ways: by your passkey (with a secret your passkey makes and never gives the site), by a passphrase you choose, and by a recovery key you keep. The site never has the key, the passphrase or the recovery key, so it cannot read your clients, and neither could anyone who took a copy of its database. For each record the database keeps:

On each of your devices the key is kept in the browser’s own storage, so you unlock once on each device, not on every visit. A script running on this site in that browser could read the key, as it could read the client file itself. Signing out removes the key from that device. If you lose every passkey, forget the passphrase and lose the recovery key, your synced records cannot be opened by anyone, including us; the client files on your devices are not affected, and you can start sync again from them.

A membership belongs to an account. Stripe is the record of what was paid; the account keeps a copy of what the membership needs: the Stripe customer id, the plan, the subscription’s status, the date its period ends, whether it is set to end, and whether the free trial has been used. Stripe tells the site when any of these change, and the site reads them from Stripe again when you come back from Stripe’s pages. An account’s data is on its account page.

Referrals. An account made after a referral link records which code brought it, when, and when its discount was given. The referrer sees counts only: how many accounts their link made and how many of those paid, never a name or an address. For each payment a referral is owed on, the database keeps the code, the referred account, Stripe’s invoice and payment ids, the amount paid before tax, the reward and its state. A partner’s visits are a count for each day, with nothing about the visitor. A partner application keeps only what its form asks (name, email, links, audience and a short text) and is deleted 90 days after the decision; the hour’s count of applications from an address is kept as a keyed hash, like the sign-in emails’. A partner’s identity and tax details go to Stripe Connect, not to this site, which keeps only the Stripe account’s id and whether its setup is complete.

What leaves your browser, and when

Reading the archive

Nothing beyond the ordinary request for the page. The timelines, charts and datasets are static files. No entry, chart or export is reported back to the site.

Whether the site has been updated

While a page of the site is open, your browser asks the site which version it serves when you come back to the page, and every half hour, so that it can offer to reload after an update. The request carries nothing about you or your files, and nothing is kept of it.

The place field on the custom inner wheel

Typing a town into that field looks it up in a gazetteer file that the site has already downloaded to your browser. The search runs on your device. Nothing you type there is sent to this site or to any geocoding service. This was a deliberate choice: the field is often used for a birthplace, and a birthplace is not something this site needs to know. The same holds for the date, time and name you enter for a custom chart, which never leave your browser. The birth data form and the form for adding a date on a client timeline use the same field, and their charts are cast in your browser. The chart import on the Clients page uses the same gazetteer, on your device, to find the time zone for each chart’s coordinates.

Membership

A membership is started from an account. The site gives Stripe the account’s email address and its id, and you give Stripe your payment details. Card numbers never touch this site: checkout and the billing portal are pages hosted by Stripe. Stripe holds your address, your card and your subscription history as the processor of the payment and as a controller in its own right for fraud prevention and its legal obligations.

Deleting the account ends the subscription at Stripe first, so nothing more is charged; if Stripe cannot be reached, the account is not deleted until it can be.

Bookings and birth data, if you connect them

An astrologer can have bookings from their own website, Cal.com, Calendly or Acuity sent to their account, and can send a client a link to give their birth data. A booking arrives at this site in plain text, as the booking service sends it; the site checks its signature and, in the same moment, encrypts it to a key that only the astrologer’s devices hold, and keeps only that. The plain text is never written down. A client’s answer to a birth data link is encrypted in the client’s own browser, so the site never sees it at all. For each message the database keeps the id the booking service gave it, the time it was sent and received, and the encrypted message. The astrologer’s browser deletes a message from the site once it has been used or dismissed. The page a client opens from a birth data link sets no cookie and keeps nothing else about them. When the astrologer adds questions of their own to a birth data link, the site keeps those questions with the link, so the client’s page can ask them; the client’s answers are encrypted with the rest.

An astrologer can also have a booking page of their own here. A client who books on it chooses a session and a time and gives what the astrologer asks; all of it is encrypted in the client’s own browser for the astrologer, as a birth data answer is, so the site never sees their name, birth data or answers. The site keeps, for each booking, the time, the session, the client’s time zone, the client’s email address and the encrypted booking, so that it can keep the time from being booked twice, send the client their confirmation and the notes of a change, and show the astrologer a new time or a cancellation. Resend sends those emails, in the astrologer’s name; the client’s address is used for nothing else. The page and the link to change a booking set no cookie.

The astrologer can give the booking page their own calendar’s private address, so the page does not offer a time they are busy. The site reads that calendar when a client looks for a time, at most every fifteen minutes, and keeps only when they are busy, the start and end of each event; not what the events are, where, or who else is in them. The address is kept encrypted with a key held outside the database, and is deleted, with every busy time read from it, when the astrologer disconnects it. The astrologer can also have a private address of their own that lists their booked sessions, for their calendar to subscribe to: each session’s time and name, and nothing of the client’s.

To connect Acuity, the astrologer gives the site their Acuity user ID and API key, because Acuity lets only a server use its API. To connect Calendly, the astrologer allows the site’s Calendly app, and the site keeps the permission token Calendly gives it. Each is kept encrypted with a key that is not in the database, and used only to set up the connection, to read each Acuity appointment that Acuity tells the site about, and to remove the set-up again. Removing the connection, or the account, removes the set-up at Acuity or Calendly and deletes the key or token.

Accounts

To make an account or sign in by email, you give the site an email address, and Resend sends the link to it. The link carries a token the site signed; it works for twenty minutes and is not written down. Signing in with a passkey sends the site only the passkey’s signature, which it checks against the public key above.

Resend also sends two emails about the account, and no others: a welcome after the first sign-in, with links to the setup, the help page and the export, and, during a free trial, a reminder three days before it ends, saying what is charged and what happens to your data. They are about your account, not marketing, and go to no list.

Your own model, if you ask it

On a members’ page you can ask a language model of your own choice, with your own key. When you press “Ask”, your browser sends what “What is sent” shows, which is the figures of the page, your question, and a name, birth data or notes only if you switched them on, directly to the provider you chose, with your key, together with the conversation before it. If your model asks the engine’s tools for a figure (the planets at a moment, a station, the dignities of a degree), your browser works it out and sends it the result; “What is sent” shows each tool as the model is told of it, and you can turn any of them off. Positions to the minute can date a chart, so a model may work out a birth date from the figures alone, even with the birth data switched off. This site’s server sees none of it: not the key, the question or the answer. What the provider does with it is in its own terms, and your agreement with the provider covers it. An answer you save is kept as your own note in the reading, in your client file, and syncs with it, sealed, if you turned sync on.

The notification list

If you ask to be told when a new timeline is added, your address goes to Resend and is kept there. That is the only thing kept, and it is kept by Resend rather than here. Every message carries an unsubscribe link.

The launch list

If you leave your address on the page shown before the site opens, it goes to Resend and is kept there, on a list of its own, for one message when the site opens. That is the only thing kept, and it is kept by Resend rather than here. The message carries an unsubscribe link.

A request for access

If you ask for access on that page, your name, email address, the link you give, the kinds of work, traditions and years you choose, and your note are sent by email, through Resend, to the site’s own inbox, and nothing of it is kept on the site. It stays in that inbox to answer you, and is deleted when you ask.

Analytics

The site uses Vercel Web Analytics and Vercel Speed Insights. Both are cookieless: they set nothing on your device, do not fingerprint your browser and do not follow you to other sites. What they record is the page visited, the referring page, the country, the general type of device, browser and operating system, and how quickly the page loaded and became usable. They produce counts, not people. There is no Google Analytics, no advertising pixel, no social tracker and no session recorder anywhere on this site.

The Share button on a timeline and on an entry loads nothing from any service. Its links to X, Bluesky, Facebook and Reddit are plain links: the service sees the page’s address only when you choose it, and then on its own site, under its own terms. “Share from this device” hands the address to your own device’s share sheet, and “Copy the link” puts it on your clipboard; neither tells this site.

Eighteen things are counted beyond the page itself, and this is all of them. This list is made from the list in the code, so the two cannot disagree:

None of them carries anything about you. No event reports an email address, and an inner wheel you built yourself is counted as the single word custom — never the name, the date or the place you typed. This is enforced rather than intended: every event goes through one function that knows the whole list of events, the properties each may carry, and the shape a value must have, which is a lowercase slug. An address, a name or a place fails that test and is dropped before anything is sent. The rule is in src/lib/analytics/events.ts and is covered by tests.

Reported page addresses are stripped the same way: everything after the # sign is removed, and everything in the query string except the campaign tags that say which link you followed, so a token or a value some future page puts in a URL cannot ride along into the analytics.

Who else is involved

WhoWhat they see, and why
VercelHosts the site and runs the analytics. Like any web host it processes the IP address and user agent of each request in order to serve it and to keep short operational logs.
CloudflareAnswers for the site’s domain and passes each request on to Vercel, so it too processes the IP address and user agent of each request. Before the site opens, Cloudflare Access also signs in its invited testers by an emailed code.
StripeTakes payments and holds the subscription record.
ResendSends the sign-in, welcome and trial-ending emails and the booking page’s confirmations, holds the notification list and the launch list, and delivers a request for access to the site’s inbox.
NeonHosts the database that holds accounts, as set out above, on Amazon Web Services in the United States.
The Wikimedia FoundationAnswers when you open “Elsewhere on this date” under a result of the Sky Search: this site’s server, not your browser, asks Wikipedia and Wikidata what they list on that date. The request carries the date and the site’s name, nothing about you or your search, and each answer is kept for a day, so most openings send nothing at all.
The provider of your own model, if you add oneYour browser sends it what you ask, as set out above. You choose the provider and hold the agreement with it; this site sends it nothing.
Nobody else.The typefaces used to come from Google Fonts, which meant Google saw a request from your browser on every visit. They are now served from this site, so reading a page contacts no third party at all beyond the host and Cloudflare, which carries the request to it.

Nothing is sold, and nothing is shared with anyone not on this list.

How long things last

WhatHow long
The account sessionNinety days from your last visit, or until you sign out.
An accountUntil you delete it. Deleting it removes the address, the passkeys, the membership’s details and every device’s session at once.
The count of sign-in emails to an addressOne day.
Synced recordsUntil you delete them on another device, start sync again, or delete the account.
An encrypted booking or birth data answerUntil the astrologer uses or dismisses it, removes its source, starts sync again, or deletes the account. A birth data link works for thirty days.
An encrypted Acuity key or Calendly permission tokenUntil the astrologer removes that connection or deletes the account.
A booking made on an astrologer’s booking pageIts time and session until thirty days after the session; the client’s email address and the encrypted booking until then, or until the booking is cancelled, whichever is first; all of it when the astrologer deletes the account.
A booking page’s calendar address, encrypted, and the busy times read from itUntil the astrologer disconnects it or deletes the account; the busy times are replaced at every read.
A sign-in linkTwenty minutes.
Your record at StripeFor as long as Stripe and its own legal obligations require, after you cancel.
Your address on the notification listUntil you unsubscribe.
Your address on the launch listUntil you unsubscribe.
A request for accessIn the site’s inbox, until you ask for it to be deleted.
Host logs at VercelFor the short operational period Vercel sets.

Your rights

Depending on where you live you may have the right to see what is held about you, to correct it, to have it deleted, to take it elsewhere, and to object to its use. You are welcome to exercise those rights whether or not the law where you live grants them.

Write to [email protected] and say what you want. For a member, most requests are carried out at Stripe or Resend and we will do that for you and confirm it. To delete everything: delete your account from the account page, unsubscribe from the list, cancel and ask Stripe to remove your customer record, and clear this site’s data in your browser. Ask, and we will walk you through it.

This site sells nothing about you and shows no advertising, so there is no sale or sharing of personal information to opt out of under California law.

Children

The archive is for a general audience but membership is not offered to anyone under 13, and no part of the site is directed at children. If a child has given us an address, write and it will be removed.

Where the site is run from

Western Slope Digital, LLC is in the United States and the site is served from there. If you use it from elsewhere, your request is handled in the United States and by the processors listed above, which operate internationally.

Changes

If this page changes, the date at the top changes with it, and the change is in the public commit history of the repository along with everything else about this project. A change that materially affects members will be emailed to members.

Contact

[email protected]. See also the Terms, the Methodology and the Sources and provenance pages.