Privacy policy
Last updated: November 10, 2026
This policy explains what information is used when you play ranki.gg (the "site"). ranki.gg is a free, ad-supported daily puzzle game made by Michael Yao ("we", "us"). The short version: you can play without an account, and your streak and progress stay in your own browser. Signing in is optional. A finished Daily or Archive puzzle also sends an anonymous score summary so community percentages can be counted. That summary can include a coarse country (for example Taiwan or the United States) worked out from the connection. We do not store your IP address. The ads on the site are provided by Google AdSense, and anonymous product analytics by PostHog, both described below.
Accounts (optional)
You don't need an account to play. If you want one, the sign-in screen offers Sign up with Google or Sign in with Google, and Sign up with email or Sign in with email. The first time this browser is used it says Sign up. After a session exists here, it says Sign in. Google and email both go through the same Supabase sign-in, so either label can create an account or open one. Email sign-in sends a magic link from Supabase's built-in email. We store the account with Supabase: your email address, and, when you use Google, the name and profile picture Google sends. A challenge link uses that signed-in display name. If there is no display name, the link says "Your friend". Your email address is never used as the challenge name. A link that already contains a name still shows that name when someone opens it. The name lives only in that link. It is not sent to our database or to the ads and analytics vendors.
The sign-in session is saved in this browser under rankd.supabase.auth. That key is only for ranki.gg, so it does not replace a session from another game on the same host. Sign out removes it. Clear all data removes it too, and signs you out. Clearing data does not wipe the whole browser store, so other projects on this host keep their own data.
Premium is one monthly subscription for ranki.gg and whereisshe.gg. Checkout is hosted by Lemon Squeezy. We do not receive your card number. We store whether Premium is on, until when, and whether it came from ranki.gg or whereisshe.gg. That row is readable only by the signed-in account it belongs to. A subscription bought on whereisshe.gg is applied here when you sign in with the same confirmed email.
The optional "Submit your own puzzle" form on the home page asks for a question, and you can add an optional name or handle. If you send a suggestion, we store the question or stat, any countries you list, an optional source link, and that optional name. We also store a short browser label and, when product analytics is on, the same random analytics id already used for PostHog, so repeated junk is easier to spot. That id is not an account. Suggestions are insert-only from the site: the page cannot read them back.
If you ask for tomorrow's puzzle by email, we store that address and the date of that day's puzzle. The list is insert-only from the site: the page cannot read, change, or delete addresses. A repeat address is ignored. Nothing is sent yet. When a daily email starts, it will be one message a day, and each message will include a way to unsubscribe. The address is not used as a challenge name and is not sent to the ads or product-analytics vendors.
When you finish a Daily or Archive puzzle, the site sends one anonymous row to our database (hosted by Supabase): the puzzle id, the puzzle's date, whether it was Daily or Archive, the puzzle type, whether you solved it, whether that clear was perfect, and a short summary of your marks or guesses, including what you submitted on the first try and, if you tried again, the second try. The row has no name, email or account id. Practice, Studio and Loading Zone preview (?preview=) plays are not sent. Your streak, settings and unfinished games stay in this browser and are not part of that row.
To group those anonymous rows ("what players in your country guessed first"), our server reads the country of the connection. If the host already provides a country code, that is used. Otherwise the server asks ipwho.is for the country code only and then discards the IP. The database stores an ISO country code such as TW or US, not the IP address, city, or precise location. If the country can't be determined, the row is stored without one. The same lookup may run when the results panel loads, and the code is cached in this browser for a few hours (rankd.country.v1, in session and local storage) so the panel can pick the matching group. That cache is removed when you clear ranki.gg data. It is not an account, and it is not sent to the ads or product-analytics vendors as part of this feature.
The site is hosted on GitHub Pages. Like any web host, GitHub may log technical information such as your IP address when your browser requests a page, for security and to run the service. See the GitHub Privacy Statement.
Product analytics (PostHog)
ranki.gg uses PostHog for anonymous product analytics. We record that a round started, that a round finished (whether you solved it, and how many guesses it took), that you opened the comparison with other players, that you clicked a share button, that you created or opened a challenge link, or that a puzzle suggestion was sent (puzzle_submitted). An event can include the mode (daily, archive or practice) and the puzzle type. It does not include your name, email, or anything you type, including your guesses and puzzle suggestions. PostHog may store a random identifier in your browser so those events can be counted; that identifier is not an account. Studio and Loading Zone preview (?preview=) are not tracked.
What is stored in your browser (localStorage)
To remember your progress, ranki.gg saves a few items in your browser's storage on your device. Puzzle progress, stats and settings stay on the device. The sign-in session is sent only to ranki.gg's Supabase project so the account stays signed in:
rankd.results.v2: your progress and results for daily, archive and practice puzzlesrankd.stats.v2: games played, solved, current and best streak, and your score distributionrankd.countries.v1: how many tries each country's boards took you, for the accuracy list in Your statsrankd.crosspromo.v1: whether you dismissed the whereisshe.gg suggestion, and when it was last shownrankd.newsletter.v1: set when you subscribe, so the inbox box stays hidden. It is not the address itselfrankd.newsletter.dismiss.v1: set when you dismiss the results-screen boxrankd.settings.v1: your settings (light or dark theme, streamer mode, sound)rankd.archiveCredits.v1: which past days you unlocked and how many Unlock! credits you used in the current 12-hour windowrankd.country.v1: the coarse country code used to show community results for your country (no IP address)rankd.community.v1: today's comparison snapshot, kept on the device so a slow or failed request can still show the crowd. It is replaced the next dayrankd.custom.v2: only if you load your own puzzle spreadsheetrankd.supabase.auth: your ranki.gg sign-in session, if you created an accountranki.account.seen.v1: remembers that this browser has had a ranki.gg session, so the button says Sign in instead of Sign up. It is not the session. Clear all data leaves it in place, because that action only removesrankd.keys. Clearing this site's storage removes itrankd.premium.intent: a short-lived flag (session storage) so checkout can reopen after you return from sign-in. It is not Premium itself
An old key, rankd.premium.v1, is ignored. Putting a value there does not turn Premium on.
You can delete all of these at any time: open the menu (⚙️), go to Settings → Your data → Clear all data, and confirm. This removes every
ranki.gg item (anything beginning with rankd.) from your browser and resets the game. Clearing your browser's site data does the same.
Advertising and cookies (Google AdSense)
ranki.gg shows ads served by Google AdSense. Google and its partners use cookies and similar technologies (for example to store and read identifiers on your device) to serve ads, to limit how often you see an ad, to measure ad performance and to prevent fraud.
- Third-party vendors, including Google, use cookies to serve ads based on your prior visits to this site and other websites.
- Google's use of advertising cookies enables it and its partners to serve ads to you based on your visits to this site and/or other sites on the Internet.
- You can opt out of personalised advertising by visiting Google Ads Settings. You can also opt out of some third-party vendors' use of cookies for personalised advertising at www.aboutads.info.
- To learn how Google uses information from sites and apps that use its services, see How Google uses data from sites that use our services.
If you choose not to receive personalised ads, you may still see ads, but they will be based on general factors such as the page you're on or your approximate location rather than your interests. Ad blockers prevent ads from loading, and the game works the same without them. Streamer mode (Settings) hides all ad space and stops the ad script from loading at all.
Third-party vendors
Google AdSense may work with other certified ad vendors and ad networks to fill ad space. These third parties may also use cookies, as described in Google's policies. We don't control these cookies and don't receive the data they collect. A list of the ad technology providers Google works with is available through Google's ad technology providers page.
Visitors in the EEA, UK, Switzerland and the United States
Google's consent message is turned on for the European Economic Area, the United Kingdom and Switzerland, and for US state privacy laws. If you visit from the European Economic Area, the United Kingdom or Switzerland, ads are shown only in line with your choices: you are asked for consent before cookies are used for personalised advertising. You can refuse, and you can change or withdraw your choice at any time through the privacy and cookie settings link in that message. Where you don't consent, only non-personalised (or limited) ads are shown. Visitors in the United States get the US state privacy message from the same Google message. Under the GDPR and UK GDPR you have rights to access, correct, delete and object to the use of your personal data. Requests about advertising data are best directed to Google via the links above. For the anonymous play row or the product-analytics events described above, or anything else, you can contact us.
Children
ranki.gg is a general-audience game and is not directed at children under 13 (or under 16 in the EEA and UK). We don't knowingly collect personal information from children. Don't create an account for a child. Some puzzles cover adult subjects such as crime and health. If you believe a child has provided personal information through the site, contact us and we will help remove it.
External links
Puzzles link to the original data sources (for example the WHO, the World Bank or national statistics offices). Those sites have their own privacy policies.
Changes to this policy
We may update this policy, for example when the site adds a feature or our ad setup changes. The date at the top shows the latest version. Significant changes will be noted on this page.
Contact
Questions about this policy or your data: mikelyaps@gmail.com.