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
Nothing kept
Your clients
In this browser only
With an account
Your email; records only encrypted
Analytics
18 events counted, no cookie
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.
| What | Where | How long | Sent to the site? |
|---|---|---|---|
| Your theme choice | localStorage | Until you clear the site’s data | No |
In fullYour theme choice — light or dark, in | |||
| Whether you have seen the opening animation | localStorage | Until you clear the site’s data | No |
In fullWhether you have seen the opening animation — one flag in | |||
| That you are a member, for an hour | sessionStorage | Until the tab is closed | No |
In fullThat 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 | |||
| A reading plan, if you make one | localStorage | Until you clear the site’s data | No |
In fullA 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 | |||
| Your client file, if you make one | IndexedDBlocalStorage | Until you clear the site’s data; what you delete, 30 days | Only with sync on, encrypted |
In fullYour 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 | |||
| Pages kept for offline use | cache storage | Until you clear the site’s data | No |
In fullPages 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 | |||
| Your name and logo for the client screen, if you add them | localStorage | Until you clear the site’s data | Only with sync on, encrypted |
In fullYour name and logo for the client screen, if you add them — in | |||
| Your house style for the PDFs, if you set one | localStorage | Until you clear the site’s data | Only with sync on, encrypted |
In fullYour 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 | |||
| Your chart colours and wheel style, if you choose them | localStorage | Until you clear the site’s data | Only with sync on, encrypted |
In fullYour 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 | |||
| Your own stars, if you add them | localStorage | Until you clear the site’s data | Only with sync on, encrypted |
In fullYour 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 | |||
| Your own model, if you add one | localStoragesessionStorage | The key until you forget it; the conversation until the tab is closed | No |
In fullYour 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 | |||
| Your account session, if you sign in to an account | cookie | Ninety days from your last visit | Yes: a random token |
In fullYour account session, if you sign in to an account — one | |||
| Your membership pass, if you are a member | cookie | An hour | Yes: a signed pass |
In fullYour membership pass, if you are a member — one | |||
| A referral link’s code, if you open one | cookie | 30 days | Yes: the link’s code |
In fullA referral link’s code, if you open one — one | |||
| A tester’s pass, if you were invited to try the site before it opens | cookie | Until the sign-in ends | Yes: a signed token |
In fullA tester’s pass, if you were invited to try the site before it opens — one cookie named | |||
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:
- your email address and the day the account was made;
- for each device signed in: a one-way hash of its session token, a short name for the browser and system (“Safari on iPhone”), and when it was signed in and last used;
- for each passkey you add: its public key (which cannot sign anything), a name you can change, whether it can unlock encrypted data, and when it was added and last used. Your fingerprint or face never leaves your device; the site does not see it;
- for an hour, a count of the sign-in emails sent to an address, kept as a keyed hash of the address, so that no one can send it dozens. Counts are removed after a day.
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:
- its random id, whether it is a client, a chart, a reading, a deletion mark, your settings, a price file of your own, a Studio episode, your own star or Sabian notes, your text library, an item of your Saved list or of your watchlist, and the time it was last changed, in the clear, so that two devices can tell which copy is later;
- everything else (names, birth data, places, notes, plans, prices, episodes, your star and Sabian notes, your text library, the searches and results you saved and their addresses, your watchlist’s markets and their charts, and your settings: how a chart opens, the parts of the Desk you use, the wheel’s style, your place, your name and logo, your house style, star sets and lots, your own groups for the counts, and the charts you opened last on the Desk, with the one you opened without a client) only encrypted. A figure in a Studio episode, a picture made from prices, stays in the browser that made it.
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:
- That someone without a membership reached a members’ tool, and which tool it was (
gate_hit). - That a plan was chosen, and which (
plan_selected). - That a sign-in link was asked for (
signin_requested). - That a trial began (
trial_started). - That the astrology tradition was changed on a chart, and to which (
tradition_changed). - That an inner wheel was used, and which preset (
inner_wheel_used). - That a card, clip or presentation was exported, or the client file saved, and which of these (
export_made). - That a new account was made (
account_created). - That a step of the setup was done or skipped, which step, and which of the two (
setup_step). - That a Desk preset was chosen, and which (
preset_chosen). - That charts were imported, and the file’s format (such as CSV or Solar Fire’s) (
import_done). - That the sample client was loaded (
sample_loaded). - That the first chart of your own was made in a browser, once, and whether it was imported or cast (
first_chart). - That the first reading plan was made in a browser, once, with nothing about it (
first_plan). - That sync was turned on (
sync_on). - That a passkey was added (
passkey_added). - That the checklist on Your practice was finished (
checklist_done). - That the checklist on Your practice was hidden (
checklist_hidden).
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
| Who | What they see, and why |
|---|---|
| Vercel | Hosts 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. |
| Cloudflare | Answers 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. |
| Stripe | Takes payments and holds the subscription record. |
| Resend | Sends 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. |
| Neon | Hosts the database that holds accounts, as set out above, on Amazon Web Services in the United States. |
| The Wikimedia Foundation | Answers 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 one | Your 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
| What | How long |
|---|---|
| The account session | Ninety days from your last visit, or until you sign out. |
| An account | Until 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 address | One day. |
| Synced records | Until you delete them on another device, start sync again, or delete the account. |
| An encrypted booking or birth data answer | Until 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 token | Until the astrologer removes that connection or deletes the account. |
| A booking made on an astrologer’s booking page | Its 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 it | Until the astrologer disconnects it or deletes the account; the busy times are replaced at every read. |
| A sign-in link | Twenty minutes. |
| Your record at Stripe | For as long as Stripe and its own legal obligations require, after you cancel. |
| Your address on the notification list | Until you unsubscribe. |
| Your address on the launch list | Until you unsubscribe. |
| A request for access | In the site’s inbox, until you ask for it to be deleted. |
| Host logs at Vercel | For 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.