Privacy Policy

Last updated: 11 June 2026

AEBits ("we", "us", "our") operates https://aebits.win (the "Service"). This policy explains what personal data we collect, why we collect it, who we share it with, and the rights you have over your data.

By using the Service you agree to this policy. The Service is a hobby project, not a commercial product. We hold the minimum data needed to operate it.

Data Controller

AEBits is operated as a personal hobby project from Alberta, Canada. There is no registered legal entity behind it. For any privacy question or request, contact [email protected]. We are not required to appoint a Data Protection Officer (DPO) and have not done so.

What We Collect

We only collect data you actively provide or that's strictly necessary to run the Service:

  • Account data - when you create an AEBits+ donor account: your email address, a hashed copy of your password (Argon2id, never stored in plain text), and the date you joined.
  • Donation record - if you donate via Ko-fi or PayPal, we receive a webhook from the payment provider containing the email used for the donation, the amount, the payment provider name, and a transaction ID. This data reaches us indirectly from the provider, not directly from you. We use it solely to recognize you as an AEBits+ supporter at signup.
  • Saved Battle Calculator presets - if you save tech or fleet loadouts as an AEBits+ donor, they're stored against your account. You can delete them at any time.
  • Pinned dashboard entries - players and guilds you pin from the rankings are stored against your account, along with any free-text notes you choose to attach to each pin (max 500 characters per note) and the display order you set.
  • Saved Battle Calculator setups - if you bookmark a Battle Calculator configuration by name as an AEBits+ donor, we store the name and the URL parameters that encode the calculator state. No additional personal data.
  • Game screenshots (optional) - some calculators let you read in-game text (a battle report, a unit or defense list, a fleet list, or a guild member list) from a screenshot instead of pasting the text. If you use this, the screenshot you upload is sent to Google's Gemini API, which extracts the in-game text from the image. We do not store the screenshot or the extracted text on our servers: the service that calls Google is stateless, and the recognized text is returned straight to your browser, where it's handled exactly like text you paste. Pasting the text never sends any image to Google.
  • Linked Discord account - if you choose to link your Discord account from your account settings, we store your Discord user ID and username so we can grant you the members-only AEBits+ role in our Discord server. Linking uses Discord's OAuth with the "identify" scope only - we never receive or store your Discord password or access token. To grant or remove the role, our Discord bot sends your Discord user ID to Discord. You can unlink at any time from your account settings, which removes the role and deletes the stored link.
  • Server access logs - our server logs request paths, timestamps, and IP addresses for short-term operational and security purposes. These are not linked to your account.
  • Product analytics - if you accept analytics on the cookie banner, we use PostHog (EU-hosted instance) to capture aggregate usage data: page views, button clicks, feature usage, and uncaught JavaScript errors. PostHog also assigns a random identifier so we can tell repeat visitors from new ones without knowing who you are. If you are logged in, server-side events (such as signup, login, and donation received) are linked to your user id so we can measure conversion. We do not record session video, screen, or form input. You can change your decision at any time by clearing the aeb-analytics-consent entry from your browser's local storage; the banner will reappear on your next visit.

We do not use advertising networks, marketing trackers, or third-party scripts that profile you across other websites. PostHog is the only analytics tool we use, and it is configured to keep all collected data on EU servers.

Legal Basis (GDPR)

For users in the EU / UK, we process your data under the following lawful bases:

  • Performance of a contract - to provide your AEBits+ account, save your presets, and run the donor dashboard you signed up for.
  • Consent - product analytics cookies set by PostHog are loaded only after you click Accept on the cookie banner. You can withdraw this consent at any time (see "Your Rights" below).
  • Legitimate interest - short-term server-side request handling for security and operational integrity; server-side product events linked to your user id (signup, login, donation received) so we can understand whether the product is useful; capturing uncaught browser errors so we can fix them.
  • Legal obligation - if we ever receive a legally binding request to preserve or disclose data.

Data Retention

We keep account data for as long as your account exists. Deleting your account from Account Settings immediately removes your account, sessions, saved presets, and dashboard pins from our production database. Your donation record (which is anonymous if you never signed up) stays in our donor allowlist so you'd be recognized as a past donor if you ever signed up again with the same email.

We do not store our own application access logs to disk. Request lines are written to the container's standard output, which may be briefly buffered by Docker and DigitalOcean (subject to their default log retention); we do not aggregate or query this output ourselves. Cloudflare retains its own edge logs per its published privacy policy, outside our control.

Game screenshots and the text extracted from them are never stored on our servers. The screenshot is forwarded to Google's Gemini API for transcription and then discarded; the recognized text is returned to your browser and never written to our database.

Cookies and Local Storage

We use two cookies that are strictly necessary to operate the Service:

  • session - HTTP-only cookie that authenticates your logged-in session. Set when you log in, cleared when you log out. Expires after 30 days of inactivity.
  • lang - Stores your preferred language so the site renders in the right locale.
  • discord_oauth - short-lived HTTP-only cookie (about 10 minutes) set only while you are linking a Discord account, to protect that flow against cross-site request forgery. Removed as soon as linking finishes.

We also use analytics cookies set by PostHog (described in the Processors section below):

  • ph_*_posthog - random visitor identifier so PostHog can distinguish new from repeat visitors. Does not contain your email or name. Set by PostHog when it loads.

We also use browser localStorage for: cookie banner dismissal flag, your saved BattleCalc tech/fleet presets if you're a free (non-donor) user, and your selected number format. localStorage is stored only in your browser and is never transmitted to us.

Third-Party Processors

We rely on a small number of service providers ("processors") to operate the Service. Each only receives the minimum data they need.

  • Resend (United States) - sends transactional emails (account verification, password reset, email change). Receives your email address and the message body. Privacy policy.
  • Ko-fi (United Kingdom) - payment processor for one-time donations. We receive only the donor's email, donation amount, and a transaction ID via webhook. Privacy policy.
  • PayPal (United States) - payment processor for donations. We receive only the payer's email, donation amount, and a transaction ID via webhook. Privacy policy.
  • DigitalOcean (United States) - hosts the production server and database. Privacy policy.
  • Cloudflare (United States) - CDN and DDoS protection in front of the site (sees request metadata: IP, URL, headers), and Cloudflare Turnstile, a privacy-preserving bot check used on the screenshot upload to block automated abuse. Turnstile processes client signals (IP, browser and TLS fingerprint, user agent) solely to tell humans from bots; it sets no cookies and cannot identify you. Privacy policy.
  • Google (Gemini API) (United States) - only if you use the "read from screenshot" option. The screenshot you upload is sent to Google's Gemini API, which extracts the in-game text from the image. We use the paid Gemini API, under which Google acts as a data processor: it does not use your image or the extracted text to train or improve its products, and retains them only briefly to detect abuse. API terms.
  • PostHog Cloud EU (European Union, Germany / Frankfurt) - product analytics and error capture (only if you accepted analytics on the cookie banner). Receives page views, button clicks, feature events, error stack traces, and a random visitor identifier. For logged-in users, server-side events include your user id. Browser requests are routed through our own /ingest endpoint, not directly to a third-party domain. Privacy policy.
  • Discord (United States) - only if you link a Discord account. We use Discord's OAuth to confirm your Discord identity, and our Discord bot calls Discord's API to grant or remove the members-only AEBits+ role. Discord receives your Discord user ID for these operations. We request only the "identify" scope and never store your Discord token. Privacy policy.

Your Rights

If you're in the EU or UK, GDPR gives you the following rights over your personal data:

  • Access - see what we hold about you. Download a JSON copy at any time from Account Settings → Download my data.
  • Rectification - correct your data. Change your email or password from Account Settings.
  • Erasure - delete your account. Available from Account Settings. Cascades to sessions, presets, dashboard pins, the Discord link, and all tokens.
  • Portability - receive your data in a machine-readable format (JSON). Same download as above.
  • Object - object to processing where we rely on legitimate interest (server logs, server-side analytics events).
  • Withdraw consent - if you previously accepted analytics on the cookie banner, you can withdraw consent at any time by clearing the aeb-analytics-consent entry from your browser's local storage. The banner will reappear and PostHog will not be loaded again until you re-accept.
  • Complaint - lodge a complaint with your local supervisory authority (in the EU, your national data protection authority; in the UK, the ICO).

No automated decision-making. We do not make decisions about you based solely on automated processing, including profiling, that produce legal or similarly significant effects (GDPR Article 22).

For requests we can't fulfill via Account Settings, email [email protected].

Information Security

All traffic to AEBits is encrypted in transit via TLS. Passwords are stored hashed with Argon2id (never in plain text). Session and verification tokens are stored only as SHA-256 hashes - the raw values live only in your browser. We follow OWASP rate-limit recommendations on signup, login, and password reset to limit credential-stuffing.

No security model is perfect. If you find a security issue, please email [email protected] before disclosing publicly.

Children

AEBits is intended for users aged 16 or older. We do not knowingly collect personal data from children under 16. If you believe a child has provided us personal data, please contact [email protected] and we'll delete it.

International Transfers

Some of our processors (Resend, PayPal, DigitalOcean, Cloudflare, Discord, Google) are based in the United States. Where personal data is transferred outside the EU/UK, we rely on the processors' Standard Contractual Clauses or equivalent safeguards published in their privacy policies. PostHog is hosted in the European Union, so analytics data is not subject to a non-EU transfer.

Changes to This Policy

We may update this policy from time to time. The "Last updated" date at the top reflects the most recent revision. Material changes will be announced in the release notes and (where relevant) by email to active accounts.

Contact

For privacy questions: [email protected].