Privacy, terms & refunds

In plain words, and only what the site actually does.

Begin Endgame is made by Foresight Engineering. Everything below was written from the code as it runs, on 3 September 2026, and last revised on 22 October 2026; where the code changes, this page changes.

Who is selling this

Foresight Engineering
Zack Woods
1437 Sandalwood Drive
Murphys, California 95247
United States
zwoods@4sightengineering.com

Stated here, and linked from the buy page above the card, because California asks an internet seller to give its legal name and street address before a buyer pays — Business and Professions Code § 17538. It is also just who to write to.

Privacy

What the site keeps in your browser

Your progress — which drills you have answered, your rating on each node, and the answer history the coach reads — is kept in your browser’s local storage under keys beginning begin-endgame:. So is your sound preference and, once confirmed, a copy of what you have bought, so the course keeps working offline. Clearing site data removes all of it. You can also choose a file on the progress page and the app keeps a copy there.

What the site keeps on its server, and only if you make an account

An account is a username and a password. The password never reaches the server: your browser derives a key from it (PBKDF2, six hundred thousand rounds) and sends that; the server stores a salted hash of the key. With an account the server also stores your progress record (so it can follow you between devices), the list of what you have bought, and a session token so you stay signed in for ninety days. It stores nothing else about you — no email address and no name.

Because it holds no email address, there is no automatic password reset. If you forget your password, write to the address below with your username; it is reset by hand, usually within a day, to a temporary password that is sent back to you, and you change it on the progress page after signing in. A reset signs out every device that was signed in with the old password. The progress stored in your browser is not touched by any of this.

Your network address is the one exception, and it is worth being exact about. To stop somebody guessing at passwords, the server counts failed sign-in and sign-up attempts against the address they came from, and that address is what the counter is filed under — so for as long as the count lives, the database holds it. The counts, and the addresses with them, are deleted once they are a day old. To be exact about how: this site runs no scheduled job, so the sweep happens when somebody next signs in successfully — on a working site that is many times a day, and on a very quiet one a row can outlive the day it was promised by as long as it takes for the next person to sign in. Nothing else is filed against your address: it is not attached to your account, your progress or your purchase, and it is never written to a log.

Payment

Payments are taken by Stripe. Your card details go to Stripe and never to this site. What this site receives back is a confirmation that a purchase succeeded and which product it was for. Stripe keeps the email address you give it for the receipt; that address stays with Stripe.

What travels the other way, so the payment can be matched to the right account when Stripe confirms it: your account name and this site’s internal id for your account are attached to the checkout as metadata. Stripe holds them under their own privacy policy. Nothing about your progress, your record or your games is sent.

Your games, if you import them

If you import games, the app downloads your public games into your browser from whichever site you name — Lichess or Chess.com — analyses them there, and keeps the review in your browser. Neither site is asked for a login or a password: both publish finished games to anybody who asks, so the username is all that is sent. With an account, the review is included in the progress record on the server. The app never uploads your games anywhere else.

Third parties the pages contact

Lichess’s public tablebase (endgame verdicts, sent as chess positions only), Lichess’s public API and Chess.com’s public API (your games, if you import them — only the site you actually name is contacted), and Stripe, if you buy. The typefaces are served from this site.

Page views, and seven named moments (your first drill, a review of your own games, a node cleared, a sitting finished, a gate missed, the buy page viewed, a purchase), are counted by PostHog on its United States servers (us.i.posthog.com), so the maker can see whether the site is used. Each count carries the page address, the page that linked to it, your browser’s name and version, and an identifier that lives only until the tab is closed. No cookie is set for it, nothing is kept in your browser’s storage for it, PostHog is set to discard your IP address on arrival, and no position, game, username or email is ever sent. The count for a review of your own games carries which site you chose and how many games were read, and nothing about whose games they were. No PostHog script runs on these pages: the counts are posted by this site’s own code, so nothing can record clicks, movements or sessions. There is no advertising.

Where the server is

Cloudflare Pages and Cloudflare D1, on Cloudflare’s network.

Deleting your data

For the copy in your browser: clear site data for this site. For an account: the Delete this account button on the progress page removes the account, its progress record, its purchases and its sessions from the server at once, after you confirm with your password. The copy of your progress in your browser stays until you clear it.

Do Not Track

If your browser sends Do Not Track or Global Privacy Control, the counting above is switched off entirely: nothing is sent to PostHog from that browser. This site does not track you across other sites. No advertising network and no third-party cookie is loaded on any page. Other sites are reached only when you ask: Stripe when you buy, and Lichess or Chess.com when you import your own games.

Changes to this notice

If this notice changes, the date at the top of this page changes with it, and the change is written into the page rather than replacing it silently: a line at the foot of this section says what changed and when. A change that affects what is collected, or who it goes to, is announced on the start screen as well, so it reaches a reader who never opens this page.

Last changed 22 October 2026: a seventh counted moment, a review of your own games finished, with the site chosen and how many games were read; never the username.

Changed 21 October 2026: page views and six named moments are now counted by PostHog, with no cookie and no identifier that outlives the tab, and the Do Not Track section says what the signal now switches off. Before this the page said there was no analytics, and there was none.

Changed 20 September 2026: said exactly when the sign-in throttle rows are swept, disclosed the account name and id sent to Stripe with a payment, and named the record-page line the refund rule is counted from.

Contact

Privacy questions: zwoods@4sightengineering.com.

Terms

Refunds

Fourteen days, no questions asked, if your account record shows fewer than ten nodes cleared beyond the free portion (Step V). Write to zwoods@4sightengineering.com from the address on your Stripe receipt and it is done.

The count is the one your own record page shows, on the line reading “of them past Step V” — not the total beside it, which includes the free steps. Past ten paid nodes the course has been used, and the sale stands.

The book on its own: fourteen days, no questions asked, no condition. Write from the address on your Stripe receipt.

A refund ends access to what that payment opened — the paid steps and the paid parts of the book for the course, the paid parts of the book for the book — the next time the app checks your account. So does a chargeback that is decided against the payment; one that is still open changes nothing. You can buy again afterwards.

Support

zwoods@4sightengineering.com. One person reads every message and replies within a few days.